我正在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