基数是数据库约束吗?

Is cardinality a database constraint?

假设我有这个模式:

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

idpet: 1, owner_idowner:1

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

idpet: 2, owner_idowner:1

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

然而,情况似乎并非如此,因为 MySQL 似乎接受了这样的事情。因此,基数不是实际约束吗?这只是我在添加条目时应该牢记的规则,而数据库不做任何维护吗?基本上,直到现在我一直认为基数是一个约束条件,但这很可能是错误的。

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

CREATE TABLE pet (
    idpet                 INT, 
    owner_idowner         INT, 
    UNIQUE(owner_idowner)
);

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

INSERT INTO pet VALUES(1,1);
INSERT INTO pet VALUES(2,1);