Re: 問實作上的問題 >"<
※ 引述《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
推
11/18 05:12, , 1F
11/18 05:12, 1F
討論串 (同標題文章)
本文引述了以下文章的的內容:
完整討論串 (本文為第 4 之 4 篇):