【问题标题】:How can I represent a ternary relationship in SQL modeler? Or else, what alternatives do I have?如何在 SQL 建模器中表示三元关系?否则,我有什么选择?
【发布时间】:2014-06-15 18:07:21
【问题描述】:

假设我有 3 个实体。 A、B 和 C。

A 和 B 的组合产生一个新的 C 元素,并且必须存储该元素(每个请求)。

例如,一个 USER(一个实体)查询一个 PRODUCT(另一个实体)并且该查询与多个属性(日期等)一起存储

我只能将其视为连接 PRODUCT、USER、QUERY 的关系 (CONSULTS)。

我正在设计的数据库有不止一种这样的情况,我只将三元关系视为一种解决方案,但像 SQL 数据建模器这样的程序不会让我表示这种关系。

那我该怎么办?我有什么遗漏吗?

【问题讨论】:

标签: sql database-design entity-relationship


【解决方案1】:

关系(按照“数据关系模型”的术语的正确和严格含义)是域的值之间的“关系”(吓人引号,因此非正式使用)。关系不受任何数量的“它们如此连接的事物”的限制。它们通常对应于 E/R 模型中的矩形,并且通常最终作为数据库定义中的表定义

Relation__SHIP__s,在通常的 E/R 意义上,通常表示在上述意义上定义的关系之间的包含依赖关系(它们对应于矩形之间的线)。它们通常最终对应于数据库定义中的 FK 约束。

有相似之处,因为域的值当然也必须存在(“有效”),然后才能在关系中“连接”。这常常让新手感到困惑。

将您业务的某些相关方面视为还是表格通常是显而易见的,但并非总是如此。想想,例如国家。它们出现和消失的速度是否足够快,以至于您的实际业务问题必须将它们视为可变因素(所有国家/地区的表格,可以根据需要每十年更改一次)或者您可以在没有(域,例如 ISO 代码)。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-03-03
    • 2018-03-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-06-19
    相关资源
    最近更新 更多