Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/76.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
SQL-外键约束和基数_Sql_Sqlite_Cardinality - Fatal编程技术网

SQL-外键约束和基数

SQL-外键约束和基数,sql,sqlite,cardinality,Sql,Sqlite,Cardinality,有人能解释外键约束和基数吗?我正在阅读SQLite手册,我在上一节。它在解释中说: 父键和子键必须具有相同的基数。在SQLite中,如果有任何子键列(在本例中为SongArtister和 songalbum)为空,则不需要相应的 父表中的行 我知道基数应该是一个集合中的值的数目,或者至少在数学中是这样,所以我假设如果我有10个人的记录,每个记录都有一列性别,那么有两种可能是男性和女性,所以假设有一些男性和一些女性,基数是2。。。对吧? 我在谷歌上搜索,没找到多少。我找到的最接近的东西是一个Mic

有人能解释外键约束和基数吗?我正在阅读SQLite手册,我在上一节。它在解释中说:

父键和子键必须具有相同的基数。在SQLite中,如果有任何子键列(在本例中为SongArtister和 songalbum)为空,则不需要相应的 父表中的行

我知道基数应该是一个集合中的值的数目,或者至少在数学中是这样,所以我假设如果我有10个人的记录,每个记录都有一列性别,那么有两种可能是男性和女性,所以假设有一些男性和一些女性,基数是2。。。对吧?

我在谷歌上搜索,没找到多少。我找到的最接近的东西是一个Microsoft Visio 2003页面,其中有一个部分解释了“”。它说:

关系的基数描述了一个数据库中有多少条记录 父表可以与子表中的记录直接相关。 基数以一对一、一对多的形式表示, 多对一,或多对多


这可能是一个很好的描述,但我仍然不理解SQLite在说父键和子键必须具有相同的基数时的含义。如果你能在回答中举出一些例子,那也会很有帮助。谢谢

这是示例的表结构:

CREATE TABLE album(
  albumartist TEXT,
  albumname TEXT,
  albumcover BINARY,
  PRIMARY KEY(albumartist, albumname)
);

CREATE TABLE song(
  songid     INTEGER,
  songartist TEXT,
  songalbum TEXT,
  songname   TEXT,
  FOREIGN KEY(songartist, songalbum) REFERENCES album(albumartist, albumname)
);
父表(
album
)有一个复合主键,即主键由两列组成

因此,如果子表想要引用相册,它也必须使用两列


在本例中,父键和子键的基数均为2。

这是示例的表结构:

CREATE TABLE album(
  albumartist TEXT,
  albumname TEXT,
  albumcover BINARY,
  PRIMARY KEY(albumartist, albumname)
);

CREATE TABLE song(
  songid     INTEGER,
  songartist TEXT,
  songalbum TEXT,
  songname   TEXT,
  FOREIGN KEY(songartist, songalbum) REFERENCES album(albumartist, albumname)
);
父表(
album
)有一个复合主键,即主键由两列组成

因此,如果子表想要引用相册,它也必须使用两列


在本例中,父键和子键的基数均为2。

这表示您发布的内容。你想得太多了。只要记住你文章中第二个灰色方框的最后一句话,它的意思就是你发布的内容。你想得太多了。记住你帖子中第二个灰色方框的最后一句话。