MySQL规范化 - 构建多表房地产列表数据库?

时间:2012-04-13 04:03:31

标签: php mysql database database-design database-normalization

我正在尝试将纸质表单转换为PHP表单,这样可以将属性列表信息保存到数据库中,并且我无法理解这样做的最佳方法。我很擅长PHP,但数据库结构和规范化有点生疏。

我需要一个表(tblListing)来获取属性详细信息(列出号码,价格,地址等)。

但是我需要另一个表(tblPropFeatures)作为属性功能(中央A / C,Central Heat,Tile等)

还有另一个(tblLotFeatures)的地段功能(角落地段,死路等)。

我试图替换的纸质表单有超过一百个用于属性功能和批量功能的复选框,所以我想确保将它们分开,以便db正确规范化。

但我无法弄清楚我是否需​​要某种链接表,或者我是否可以使用常规连接。

我还希望能够从数据库表中包含的功能动态构建复选框列表。如果将来需要添加新功能,管理员可以登录phpMyAdmin并向PropertyFeatures表添加一列,刷新后将动态更新PHP表单,并在数据库中显示新功能的新复选框。

提前感谢您的帮助和建议

1 个答案:

答案 0 :(得分:1)

您需要一个“列出属性功能”表,它将列表连接到propFeatures,以及一个将列表连接到lotFeatures的“列表批次功能”

这些被称为多对多关系。您有许多房产列表,每个房源都有许多或许多属性功能。

这也实现了您能够动态构建复选框的目标。您只需要从每个表中选择所有功能并循环浏览它们以创建一个复选框。如果您直接将属性加入到要素中,则必须复制每个要素条目。

只需确保使用主键创建每个表,然后在连接表中索引这些键。

希望有所帮助!祝你好运!