【问题标题】:ERM model - ternary relationship with weak entityERM 模型 - 与弱实体的三元关系
【发布时间】:2011-09-20 21:22:58
【问题描述】:

我有一个简单的数据库设计。它有实体:UserPlaceReview。基本上,用户可以发布一个地方(某个地方的位置),并且用户可以发布评论。现在我在这三者之间建立了三元关系,以便能够发布用户对某个地方的评论。

就像 User ---- <post> ---- ReviewPlace ---- <post> ---- User

所以,这是一种 3 方式。

首先是正确的用法?如题,我可以这样做吗?我真的不在乎这是否不是最好的方法,我只想知道这是否合法?

其次,我将Review 设置为一个弱实体,但我怎样才能使其具有 User 的主键和 Places 的主键?如果我使它成为一个弱实体,它会自动接受它们的两个主要 id 吗?

谢谢!

【问题讨论】:

    标签: database-design entity-relationship


    【解决方案1】:

    首先是正确的用法?如题,我可以这样做吗?我真的不在乎这是否不是最好的方法,我只想知道这是否合法?

    对我来说不,因为我看到你在第二个关系中将地方与自身联系起来。我认为这是一个错字,你的意思是User----<post>----Place

    其次,我将 Review 设置为一个弱实体,但我怎样才能使其具有 User 的主键和 Places 的主键?如果我使它成为一个弱实体,它会自动接受它们的两个主要 id 吗?

    需求缺少一些重要的东西,例如:

    1. 用户可以发布多少条关于某个地点的评论?
    2. 可以多个用户发布同一个地方吗?
    3. 多个用户可以对同一个地方发表评论吗?

    等等,所以很难给出准确的答案。

    具有以下假设的一个示例:

    1. 一个用户可以发布很多地方
    2. 多个用户可以发布同一个地方
    3. 用户只能为某个地点发布一条评论

    你可以创建这个关系:

    User(m)--<post>--(n)Place
               |
               |
             Review
    

    如果你再解释一下,也许我可以引导你找到预期的解决方案。

    【讨论】:

    • 是的,我修复了关于放置位置的部分。但你的模型是我的想法。我做了一个用户可以发布多个地方,但每个用户每个地方只能发布 1 条评论,并且只有 1 个地方期间。所以另一个用户不能再次发布同一个地方。所以,基本上你的假设中的#2 将只有 1 个地方可以由任何用户发布。
    • 嗯,这大大简化了事情。因此,Place 现在具有 User 和 Review 作为属性。完成:)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-06-22
    • 2018-11-14
    • 1970-01-01
    • 1970-01-01
    • 2016-12-21
    • 2021-12-24
    相关资源
    最近更新 更多