与简单地两列创建PropertyAmenity表:
property_id
amenity_id
主键既要PROPERTY_ID和amenity_id的复合物。您可能还想添加一个user_id和update_date字段,审计很重要。
这将允许您将属性关联到许多设施。
外键关系应该之间:
Properties.property_id and PropertyAmentity.property_id
Amentities.amenity_id and PropertyAmenity.amenity_id
实施例:
Property:
property_id address city
100 Property 1 St. NY
101 Property 2 St. NY
Amenity:
amenity_id amenity_name
100 Central Air
200 Swimming Pool
PropertyAmenity
property_id amenity_id
100 100
100 200
101 100
在上述例子中,属性1具有两个中央空气和游泳池,而属性2具有只是中央空调。
要选择的设施为一个给定的属性,你可以写SQL这样的:
Select a.* from Property p, PropertyAmenity pa, Amenity a
where p.property_id = pa.property_id
and pa.amenity_id = a.amenity_id
and p.property_id = 100
+1只是输入相同的答案:) – vascowhite
首先,感谢您的帮助! 我有点理解你在说什么,但我很难想象它的一切。请给我看一个具有不同表格的值的例子,这样我就可以看到它们是如何相互关联的?此外,什么是需要选择所有设施的特定属性的SQL语句?我不完全理解你提供的代码示例。 – zeckdude
@zeckdude,我用例子更新了我的帖子。 – mike01010