【问题标题】:Identifying relationship in sql识别sql中的关系
【发布时间】:2020-11-13 00:30:20
【问题描述】:
CREATE TABLE CUSTOMER 
(
    CUSTOMER_ID   NUMBER(3),
    NAME VARCHAR2(10),
    ADDR VARCHAR2(30)
);

CREATE TABLE ISSUE_CARD 
(
    CUSTOMER_ID  NUMBER(3),
    CARD_ID NUMBER(3)
);

CREATE TABLE CARD 
(
    CARD_ID NUMBER(3)
);

我想设置CustomerISSUE_CARD表之间的关系如下:

  • customer 表的最小基数为 0
  • customer 表的最大基数为 1

关系意味着可以将客户插入“无”卡的表中。还可以“使用”卡片将客户插入表中。

所以我必须为Customer 表添加一些约束,但我不知道该怎么做,因为如果我将外键添加到Customer 表中,则必须将值插入到表中

我认为这种情况不能调整为非识别关系,但我认为这种情况被认为是识别关系。

谢谢。

【问题讨论】:

  • value must be inserted into the table if I add the foreign key into Customer table -> 这不是真的。您也可以将 FK 列值保持为 NULL。

标签: sql oracle ddl


【解决方案1】:

如果客户只能拥有 0 或 1 张卡,那么您不需要 ISSUE_CARD 表。只需将 CARD_ID 列添加到 CUSTOMER 表即可。

像 ISSUE_CARD 这样的桥接表只需要支持多对多关系。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-04-02
    • 2022-12-06
    • 2010-10-20
    • 2014-08-30
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多