SQL架构设计:与许多表相关联?

时间:2015-10-29 00:51:58

标签: sql database relational-database database-schema

假设我有一个包含4种类型的数据库:邻居,城市,房屋和评论,就像这样

城市:         名称         ID

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

然后在获取城市列表时,我也可以在此表上进行联接以获取相关注释。然后我会为House和Neighbour创建类似的情况。

另一个想法是在City,House和Neighbour中拥有全局唯一标识符,然后将该全局ID作为注释中的外键。然后,在获取City时,它将在注释中查找该全局ID。

这些都是好方法吗?还有更好的方法吗?

1 个答案:

答案 0 :(得分:0)

向City,Neighborhood和House添加commentID。 (评论的外键:Id)

这样,您只需创建一个空注释,并在没有注释的情况下添加其ID。