最好有一个主表或拆分成多个表?

时间:2017-05-19 05:07:29

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

我正在创建一个数据库,我不确定设计表的最佳方法。我有一个房地产属性表,我想存储有关这些属性的信息 - 例如卧室,浴室,大小......如果看起来有用,我可能会在将来存储其他信息 - 例如最后购买价格或建造日期,所以我需要灵活添加。

为每个"特征"创建一个单独的表是否更好?或者有一张具有所有特征的表格?分离这些特征似乎更简洁,但更容易编程以获得一个表。

  

特征表

id  property_id  characteristic  value
1   1            bedrooms        3
2   1            bathrooms       2
3   1            square feet     1000
4   2            bedrooms        2
...

OR

  

BEDROOM TABLE

id  property_id  bedrooms
1   1            3
2   2            2
...
  

浴室桌

id  property_id  bathrooms
1   1            2
...

请原谅我,如果这是一个愚蠢的问题,我对数据库设计的了解非常基础。

3 个答案:

答案 0 :(得分:0)

我建议你的两个建议之间存在中间立场。我会做的袖口

属性表(UID地址zip其他唯一标识属性)

房间表(UID,propertyID,房间类型,房间大小,楼层,形状,颜色,完成,其他roo具体细节等)。

物业详情(uid,propertyID,地段大小,学区,成本,税率,其他整个物业详情)

最后一两个历史记录表,例如

物业销售历史(UID,PropertyID,salesdate,saleprice,销售原因等)

通常只是通过“匹配”逻辑对数据进行分组可以产生良好的结果....只需要考虑表的1to1和1到多少关系需求。

答案 1 :(得分:0)

我专注于此:

  

"我有一张房地产资产表"

现在据我所知,你必须是另一种类型:

Houses
Bedrooms
Comfort room and so on.

进一步说明: 你必须是一张表:

1. House type
2. House names,description,housetypeid,priceid,bedroomid,roofid,comfortroomid and any other that related to your house.
3. Bedroom type
4. Comfort room type
5. Dining type
6. roof type if it has.
7. House prices
8. Bathroom type

类似的东西。

答案 2 :(得分:0)

一个包含几列的表格:

价格,#br,#bath,FR,DR,sqft和少量其他常用选中属性的列。然后是一个包含所有其他信息的JSON列(2个洗碗机,水疗中心,海景等)。

对单独的列使用WHERE子句,然后在客户端代码中完成过滤,这样可以更容易地查看JSON。