我刚被指派翻新一个旧网站,我可以将它从一些旧的古老系统转移到drupal。唯一的问题是它是一个房地产系统,并存储了大量数据。目前所有信息都存储在一个表中,id表示房子,然后其他所有信息都是键/值对。每个庄园可能有243个密钥,系统中有23840个庄园。您可以想象系统很慢且难以查询。
我认为243行的表格不是一个好主意,可能比目前情况更糟糕。我做了一些调查,这是我发现的:
我最好的想法是混合方法,创建一个存储重要的公共信息的表,并保留一个较小的键/值表。
您如何存储此信息?
答案 0 :(得分:2)
你已经有了
村
卖方
地址
间
Estate n - 1卖家
遗产1--1地址
卖家1--1地址
Estate 1 - n Room
对于其他misc数据(动态?),创建一个id / key / value表
答案 1 :(得分:1)
从某种意义上说,你很幸运,数据库已经做了很多确定需要为你存储哪些数据的工作。令人遗憾的是,懒惰的程序员不愿意为自己的工作做好准备。
我会将存储所有不同键值的关系表放在一起(你可以把它们组合在一起,我会有重复的值只有略有不同的名称)至少占20%记录。您的大多数字段都将允许空值。
我认为你是对的,定义最常见的东西,然后使用从这里添加的少数几个键值。或者如果你想要,你可以为非标准信息添加XML字段或文本字段。如果它是非标准的,那么查询的可能性有多大?
设置表格时,不要让它们太宽。你可能想要创建具有1-1关系而不是宽表的单独表。由于数据库如何存储数据页面的一些技术规范,这可以帮助提高性能。 JUst确保将所有必需的东西放在主表中而不是扩展表中。
答案 2 :(得分:0)
您需要查看实体关系模型。但是,如果你已经有了一个suck表,你应该查看Wikipedia上的五个规范化阶段。他们可以将suck表转换为一组好表。