基数是数据库约束吗?
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);
假设我有这个模式:
现在,这告诉我一个主人最多只能养一只宠物。然而,很长一段时间我都在想,如果我有一个这样的条目:
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);