我已经创建/正在创建 3 个表:Slaves、Citizens 和 Incidents。
我应该如何处理涉及多个公民和奴隶的事件? 现在我正在考虑在 Incidents 中创建两个字段,其中包含 CitizenID 和 SlaveID(SlaveID1、SlaveID2...、SlaveIDn)的列表,但这看起来很愚蠢。
最佳答案
其实你的想法听起来一点也不蠢。您可以像这样设计您的 Incidents
表:
+------------+-----------+---------+
| IncidentID | CitizenID | SlaveID |
+------------+-----------+---------+
| 1 | A | A | <-- incident #1 involved 2 citizens and 1 slave
| 1 | B | A |
| 2 | A | A | <-- incident #2 involved 2 citizens and 2 slaves
| 2 | B | A |
| 2 | A | B |
| 2 | A | B |
+------------+-----------+---------+
现在,当您查询某个事件 ID 时,您可以获得事件中涉及的所有公民和奴隶的列表。这是您的数据库模式中的多对多关系。
关于sql - 涉及另一个表中多行的字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31284014/