我正在为一个php应用程序设计mysql数据库,该应用程序包含两个部分:为房屋商店等属性添加广告,并搜索它们。
我有users, addresses, ads...
问题是properties
表。我不知道是否应将其分成多个表格,还是应该有一个大表?列太多了。我有多达100个字段,例如:
物业类型:house, shop, fields...
每种物业类型都有一些字段,如房屋的卧室编号,以及空调系统,设施,设备等其他字段。
我该怎么办?我应该将此表分成较小的表吗?
答案 0 :(得分:1)
我建议使用properties
表,features
表和property_features
表。
您的properties
表格将包含主要信息 - 地址,列表所有者等
您的features
表格是一个表格,其中每一行都是可能的功能 - air_conditioning
,rooms
,bathrooms
,gold_plated_toilets
等。< / p>
您的property_features
表格会显示property_id
,feature_id
和可选的value
字段(可能是true
/ {{1} } false
的值,或类似air_conditioning
的值,可能是数字计数。)
答案 1 :(得分:1)
我建议使用bridge
表。您可以在此Link上看到桥接表是什么。
通常,您有2个选择,都是架构设计:
仅使用一个表(名为property
)并向其添加批量数据。在这种情况下,字段是您的功能(如air_conditioning,卧室编号等)。通过将这些字段定义为布尔值并为“该属性具有此功能”表示1,为“该属性没有此功能”表示0,您可以执行您想要的操作。
使用简单的bridge
表,该表是将property
表连接到features
的表,您应该为属性项定义。
实际上,第二种方法是数据库设计中的适用方法。因为它是可扩展的,即您每次都可以添加每个新功能!
希望这个解释能帮到你!