【问题标题】:How should I separate this data in my database design我应该如何在我的数据库设计中分离这些数据
【发布时间】:2021-10-06 17:28:28
【问题描述】:

我对我正在从事的数据库设计感到有些困惑。这是一个房地产数据库。

我正在尝试存储房产的交易模式(出租或出售)。我制作了一个名为事务的查找表,因此我可以使用外键。但是,每种模式都有附加信息。销售有价格,而租金有费率(即月或学期)、价格、首付和押金。我不能把它们放在查找表中,因为会有很多空值。所以我想用属性ID制作一个销售表和一个出租表。这是一对一的关系(一个属性只有一种交易模式)。但是,考虑到这两个字段中的一个可能为 null 的事实,我想知道我是否应该在属性表中包含出租 ID 和销售 ID:

https://drive.google.com/file/d/127NhhhofVMzc3oyPBzHbS-5mPY2QUhEI/view?usp=sharing

或者我不应该将 id 放在属性选项卡中,因为出租和销售表已经有属性 id

https://drive.google.com/file/d/13CDVpQXrleNnmEUJniC8Q9ygEi-vvjvS/view?usp=sharing

感谢您的关注

【问题讨论】:

    标签: mysql sql database database-design


    【解决方案1】:

    将外键放入销售/租赁表中。毕竟,理论上,您可能正在租用您也想出售的房产。 所以: Rates.property 和 Sale.property 都指向 Property 表。然后,您可以使用 Property left join Rates on Property.id = Rates.property 引入详细信息,其中 Rates.property 不为空。

    【讨论】:

    • 等等,您所说的费率是指租金。因为我说的是 Rentals* 和 Sales* 表。因为我有点迷茫
    • 是的,租金。
    【解决方案2】:

    您不能多次租用房产吗?

    要获得正确的 1:many 关系,Rentals 需要一个列 property_id不是。 (那是选项2,不是选项1)

    我不明白什么是“交易”;我没有看到任何其他可以提供线索的列。

    【讨论】:

    • 确实选项2是我的想法。 Transaction 是一个带有“rent”和“sale”选项的查找表。不能多次出租或出售同一房产。
    • @Al.Salvador - 我不能租一个星期的房产,然后别人租下一周?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-10-04
    • 1970-01-01
    • 1970-01-01
    • 2012-03-16
    • 2011-10-07
    • 2011-04-13
    相关资源
    最近更新 更多