Re: 問實作上的問題 >"<

看板PHP作者 (缺錢啦 @@)時間18年前 (2005/11/17 18:34), 編輯推噓1(100)
留言1則, 1人參與, 最新討論串4/4 (看更多)
※ 引述《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
瞭解瞭解~:D
11/18 05:12, 1F
文章代碼(AID): #13V5pClt (PHP)
文章代碼(AID): #13V5pClt (PHP)