1

我正在为一个出售房屋和土地的网站设计一个数据库。我有一个问题,房子可能位于一块或多块土地上,而土地可能包含一块或多块土地,具体取决于其面积。我提出了最初的设计,土地和房子之间的关系是多对多的:

House:
Id - Name – area –landID – noRooms – hasSwimmingPool
Land:
Id – name – area  - location
Offer: (contain the offer of either a land or a house)
Id – userID – type – paymentMethod 
Land_House:
houseID – landID

我仍然无法将 Land_House 表与 offer 表相关联。

有没有比我做的更好的方法?最好的方法是什么?

4

2 回答 2

0

要回答您的第一个问题,您错过了显而易见的问题;您的报价表没有属性字段。您将如何存储他们提供的报价?我建议为 OfferType 添加一列并存储 H(房屋)或 L(土地),然后添加 PropertyID。通过这种方式,您可以根据 OfferType 的值重新连接到 House 或 Land 中的正确 ID。

不过,理想情况下,House 和 Land 将是一个带有 PropertyType 字段的表。

于 2013-11-14T17:19:09.243 回答
0

一种方法可能是拥有一个优越的 Property 表,并且 house 和 land 可以将它们的主键作为该表的外键。通过这种方式,您可以保持土地房屋关系,而不会在一张桌子上混合土地和房屋,因为它们是不同的东西,然后在 Offer 表上添加属性 ID,可以是房屋或土地。

这就像考虑继承。

希望这可以帮助。

于 2013-11-14T17:24:32.237 回答