我有一个group
表 - option_id
或extras_id
应该在单独的表中还是在一个表中?请参阅下文我的意思:
组表:
mysql> select * from `group`;
+----+-----------+--------+
| id | name | type |
+----+-----------+--------+
| 1 | Group One | extra |
| 2 | Group Two | option |
+----+-----------+--------+
有两个组(额外或选项)。
group_extra表:
mysql> select * from `group_extra`;
+----+----------+----------+
| id | group_id | extra_id |
+----+----------+----------+
| 1 | 1 | 123 |
| 2 | 1 | 124 |
+----+----------+----------+
group_id
= 1有一个ref extra_id
group_option表:
mysql> select * from `group_option`;
+----+----------+-----------+
| id | group_id | option_id |
+----+----------+-----------+
| 1 | 2 | 45 |
| 2 | 2 | 46 |
+----+----------+-----------+
group_id
= 2有一个ref option_id
group_option_extra表:
mysql> select * from `group_option_extra`;
+----+----------+-----------+----------+
| id | group_id | option_id | extra_id |
+----+----------+-----------+----------+
| 1 | 1 | 0 | 123 |
| 2 | 1 | 0 | 124 |
| 3 | 2 | 45 | 0 |
| 4 | 2 | 46 | 0 |
+----+----------+-----------+----------+
或者表格应该是这样,将group_option
和group_extra
合并为一个?推荐哪一个。
答案 0 :(得分:3)
将它们分开。
你真的不需要type列 - 你可以检查其他表中是否存在任何行以查看它是哪种类型。
答案 1 :(得分:3)
独立的。
“together”被称为“One True Lookup Table”反模式
见