【问题标题】:Is cardinality a database constraint?基数是数据库约束吗?
【发布时间】:2021-09-04 23:14:19
【问题描述】:

假设我有这个架构:

现在,这告诉我主人最多只能养一只宠物。然而,很长一段时间我都在想,如果我有这样的条目:

idpet: 1, owner_idowner:1

我要添加另一个条目,例如:

idpet: 2, owner_idowner:1

数据库本身不允许我这样做(所以它就像一个 FK 约束或 PK 约束)。

但是,情况似乎并非如此,因为 MySQL 似乎接受了这样的事情。因此,基数不是实际的约束吗?这只是添加条目时我应该记住的一条规则,而数据库没有维护它吗?到目前为止,我一直认为基数是一种约束,基本上,但这很可能是错误的。

【问题讨论】:

    标签: mysql database schema mysql-workbench


    【解决方案1】:

    基数是一个重要的话题。

    您可以使用以下 SQL 查询来达到预期的结果。

    create table pet (idpet int, owner_idowner int, UNIQUE(owner_idowner));
    

    如果您现在尝试使用以下查询插入数据,那么第二个查询将导致错误。

    insert into pet values(1,1);
    insert into pet values(2,1);
    

    【讨论】:

      猜你喜欢
      • 2018-07-14
      • 1970-01-01
      • 1970-01-01
      • 2011-04-07
      • 1970-01-01
      • 2011-02-03
      • 2011-02-05
      • 2010-11-09
      相关资源
      最近更新 更多