最佳数据存储 - 三重存储/关系数据库/其他?

时间:2011-09-07 11:37:59

标签: php database triplestore

我正在Apache服务器上使用PHP构建一个Web应用程序。

该应用包含大量有关人员的可选数据。根据人的类别(一个人可以在五类),他们可以选择是否指定数据:家庭地址(= = 5个街道,城市,国家,......),工作地址(再次5个字段),年龄,电话号码....当然,应用程序也存储了一些额外的数据(创建,上次更新,用户名,密码,用户级别......)。

应用程序的当前/过时版本在“users”表中有86个字段,并且(取决于人员的类别),使用另外23个字段(1-1关系)的附加表进行扩展。 / p>

所有这些都存储在Postgresql数据库中。

我想知道这是否是处理此类数据的最佳方式。大多数记录都有(很多)空字段,使db更大,查询更慢。是否值得研究像Triple Store这样的其他解决方案,或者我是否担心它太多,我应该保持当前的设置吗?为网站的每个新目的添加字段到表格似乎很奇怪并且感觉很尴尬。另一方面,我的印象是三重商店还不常见。任何指针,或建议如何处理这个?

我读过Toby Segaran和其他人的“编程语义网”,但从那本书中我得到的印象是,三重存储和RDF的主要优点是通过网络交换信息(这不是目标我的应用程序)

1 个答案:

答案 0 :(得分:0)

  

大多数记录都有(很多)空字段

这意味着您的数据远未标准化。

  

应用程序的当前/过时版本在“users”表中有86个字段,并且(取决于人员的类别),使用另外23个字段(1-1关系)的附加表进行扩展。 / p>

确实,是的,距离normalized还有很长的路要走。

如果您有充分的理由离开现在的位置,那么第一步就是更好地构建数据。 即使您选择转移到其他类型的DBMS ,例如noSQL或对象db。

这不仅可以节省DBMS中的空间,还可以更快地检索数据并减少您需要编写的代码量(例如,您可以重复使用相同的代码来维护家庭地址,如果维护工作地址,你有一个“地址”表,其中一个字段标记了地址类型。

网上有很多资源(除了上面的维基百科链接),描述了如何应用规范化规则(它在1,2和3之后开始有点参与 - 但如果你能掌握这些,那么你“能够承担大部分任务。”

相关问题