【发布时间】:2015-10-29 00:51:58
【问题描述】:
假设我有一个数据库,其中包含 4 种类型的东西:社区、城市、房屋和评论,就像这样
城市: 姓名 身份证
Neighborhood:
name
ID
CityID (foreign key to City:ID)
House:
name
ID
NeighborhoodID (foreign key to Neighborhood:ID)
CityID (foreign key to City:ID)
Comment:
ID
Text
???? (key to the subject of the comment)
我希望用户能够对城市、社区或房屋发表评论。如何在 SQL 中表达这种关系?
我的一个想法是创建 3 个一对多关系表:
CommentToCity:
commentID
cityID
然后在获取城市列表时,我也可以在此表上进行连接以获取相关的 cmets。然后我会为 House and Neighborhood 创建类似的情况。
另一个想法是在 City、House 和 Neighborhood 中使用全球唯一标识符,然后让该全球 ID 作为评论中的外键。然后在获取 City 时,它会在 cmets 上进行连接以查找该全局 ID。
这些都是好方法吗?有没有更好的办法?
【问题讨论】:
标签: sql database relational-database database-schema