Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/70.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中,如何处理必须有许多(20+;)外键的表?_Sql - Fatal编程技术网

在SQL中,如何处理必须有许多(20+;)外键的表?

在SQL中,如何处理必须有许多(20+;)外键的表?,sql,Sql,假设我想创建一个数据库来处理足球比赛。如果我想要一个名为matches的表,那么如何避免编写类似player1_-fk、player2_-fk[…]player22_-fk的内容? 是否有类似SQL数组的东西?它被称为链接表: Matches ID Players ID PlayersToMatches Match_ID Player_ID 这就是您通常在关系数据库中存储多对多关系的方式。您当前的数据模型是什么,您想建模什么?不清楚您想做什么,请添加详细信息@Smutje询

假设我想创建一个数据库来处理足球比赛。如果我想要一个名为matches的表,那么如何避免编写类似player1_-fk、player2_-fk[…]player22_-fk的内容?
是否有类似SQL数组的东西?

它被称为链接表:

Matches
  ID

Players
  ID

PlayersToMatches
  Match_ID
  Player_ID

这就是您通常在关系数据库中存储多对多关系的方式。

您当前的数据模型是什么,您想建模什么?不清楚您想做什么,请添加详细信息@Smutje询问。似乎您需要一个n:m关系,所以请使用额外的表播放器“是否有类似SQL数组的东西”-此问题通常表示不了解规范化的含义。除此之外:对阵列的支持在很大程度上取决于所使用的DBMS。大多数人没有阵列支持,其他人对他们的支持非常好。因此,您需要告诉我们您正在使用哪些DBMS(Postgres、Oracle、SQL Server等)。感谢各位的建议,我决定使用一个交集表。另外,感谢你的警告,我将仔细阅读规范化方面的内容,因为我在这个部门显然缺乏这方面的知识。