我正在Apache服務器上用PHP構建一個Web應用程序。最佳數據存儲 - 三重存儲/關係數據庫/其他?
該應用程序包含大量有關人員的可選數據。根據人的類別(一個人可以在五類中),他們可以選擇指定或不指定數據:家庭住址(== 5個街道,城市,國家,...),工作地址(再5個字段),年齡,電話號碼....當然,應用程序還存儲一些額外的數據(創建,上次更新,用戶名,密碼,用戶級別...)。
該應用程序的當前版本/過時版本在「users」表中有86個字段,並且(取決於人的類別)擴展爲具有另外23個字段(1-1關係)的附加表。
所有這些都存儲在Postgresql數據庫中。
我在想這是否是處理這類數據的最好方法。大多數記錄都有(很多)空字段,使數據庫變大,查詢變慢。是否值得考慮像Triple Store這樣的其他解決方案,還是我擔心太多,我應該保持當前的設置?這似乎很奇怪,只是爲了網站的每個新用途而將表添加到表中。另一方面,我有這樣的印象:三重商店並不常見。任何指針或建議如何處理?
我讀過Toby Segaran和其他人的「Programming the semantic web」,但從這本書中我得到的印象是三重商店和RDF的主要優勢是通過網絡交換信息(這不是我的應用程序的目標)
想知道你是否正確,它沒有正常化。我存儲關於某人的各種數據(眼睛顏色,頭髮顏色,薪水,組織中的等級,has_badge,has_companycar,_...等)。是的,你可以把所有可以「擁有」的項目放在一個表中,並且在連接用戶和「屬性」之間放置一箇中間表,但我不確定這會加快查詢的速度(相反) 。 – user410932
雖然我同意有一個表「屬性」來存儲可選數據,但它似乎正在朝着三重商店的方向發展......(其中所有字段都以「屬性」或「對象」因爲他們會這樣稱呼它) – user410932