设计数据库为房地产php应用程序,表有太多列

时间:2016-12-04 23:08:50

标签: php mysql database-design entity-attribute-value

我正在为一个php应用程序设计mysql数据库,该应用程序包含两个部分:为房屋商店等属性添加广告,并搜索它们。

我有users, addresses, ads...

的表格

问题是properties表。我不知道是否应将其分成多个表格,还是应该有一个大表?列太多了。我有多达100个字段,例如:

物业类型:house, shop, fields...每种物业类型都有一些字段,如房屋的卧室编号,以及空调系统,设施,设备等其他字段。 我该怎么办?我应该将此表分成较小的表吗?

2 个答案:

答案 0 :(得分:1)

我建议使用properties表,features表和property_features表。

您的properties表格将包含主要信息 - 地址,列表所有者等

您的features表格是一个表格,其中每一行都是可能的功能 - air_conditioningroomsbathroomsgold_plated_toilets等。< / p>

您的property_features表格会显示property_idfeature_id和可选的value字段(可能是true / {{1} } false的值,或类似air_conditioning的值,可能是数字计数。)

答案 1 :(得分:1)

我建议使用bridge表。您可以在此Link上看到桥接表是什么。

通常,您有2个选择,都是架构设计:

  1. 仅使用一个表(名为property)并向其添加批量数据。在这种情况下,字段是您的功能(如air_conditioning,卧室编号等)。通过将这些字段定义为布尔值并为“该属性具有此功能”表示1,为“该属性没有此功能”表示0,您可以执行您想要的操作。

  2. 使用简单的bridge表,该表是将property表连接到features的表,您应该为属性项定义。

  3. 实际上,第二种方法是数据库设计中的适用方法。因为它是可扩展的,即您每次都可以添加每个新功能!

    希望这个解释能帮到你!