作者clifflu (缺钱啦 @@)
看板PHP
标题Re: 问实作上的问题 >"<
时间Thu Nov 17 18:46:18 2005
※ 引述《xamous (一天死去一点)》之铭言:
: ※ 引述《clifflu (缺钱啦 @@)》之铭言:
: : 将资料与结构分离的作法:
: : Users (使用者) : UID (Primary), GID_Root (INDEX), blah...
: : Groups : GID (Primary), GID_Parent (INDEX), UID (INDEX)
: : Contacts: CID (Primary), GID (INDEX), UID (INDEX)
: 但是我又有问题,如果此系统想要 support 多个使用者,让每个使用者都
: 能管理其联络人名单,给每个 user 一对 Contacts/Groups 表格,或是让
: 所有 user 共用一对 Contacts/Groups 表格,以 UID 区别该笔联络人或
: 群组资料是属於哪一使用者所有,这两种作法有什麽优劣呢?
: 不好意思,我对於资料库完全没 sense,只会写 PHP 存取资料库而已 >"<
我上面的架构本来就是做给多使用者多组资料使用.
让使用者共用或独自使用表格间的差异, 我想主要可以从两个方面来看:
1) 久未整理 (以 MySQL 来说, optimize) 的资料库会需要耗费无谓的时间
因此当使用者的数量很大, 又会有很多 Group, 很多 Contact 的时候,
适当的拆开到各表格是合理的 -- 然而一人一组表格也太多了.
2) 有些 os 有单一档案大小的限制, 虽然 MySQL 支援自动拆档, 不过让 coder
来分, 效能决对比让 DB 来处理更好. 只是在资料量如此大的前题下, 当一
个 Table 可以大到这种程度时, 将改写成每个使用者一个 Table, 则又要小
心使单目录下的档案超过上限 XD
不过在如此的资料库规划上要使档案大小超过上限也很难, 毕竟其它的资料
被分离存到其它表格去 ( xxx_data), 那些表格要整个拆开也比较容易, 毕
竟还是能够依靠 foreign key 来运作.
3) 在权限管理的设定上, 让使用者拥有特定表格会使得使用者间的安全性上升,
因你可以替每位使用者建立其 MySQL 帐号, 并给定合理的最低权限:
Select, Insert, Update 及 Delete. 但在不如此做的前题下, 表格独立便
无法取得此等好处.
并且, 单一档案仍然可以透过额外的检查来满足这一点 (不然我干麻替 Groups
和 Contacts 加上 UID 栏位), 你也能够定期对资料安全做 check (是否有使
用者曾经存取到不属於他的资料 ? 或是某使用者的资料跑到其他使用者的群
组底下等等)
--
鬼压床怎麽办
骑上去啊
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 140.112.217.134
1F:推 xamous:了解了解~:D 11/18 05:12