【问题标题】:SQL Schema Design: Associated with many tables?SQL Schema Design:与许多表相关联?
【发布时间】: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


    【解决方案1】:

    为 City、Neighborhood 和 House 添加一个 commentID。 (评论外键:Id)

    这样你只需要创建一个空的评论,如果没有评论就添加它的 ID。

    【讨论】:

      猜你喜欢
      • 2015-03-19
      • 1970-01-01
      • 1970-01-01
      • 2011-08-10
      • 2011-03-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多