Таблицы литературы: все в одной или отдельной таблице? - PullRequest
0 голосов
/ 22 сентября 2011

У меня есть таблица 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 есть список ссылок extra_id

таблица параметров группы:

mysql> select * from `group_option`;
+----+----------+-----------+
| id | group_id | option_id |
+----+----------+-----------+
|  1 |        2 |        45 |
|  2 |        2 |        46 |
+----+----------+-----------+

group_id = 2 имеют список ссылок option_id

group_option_extra table:

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 в один? какой из них рекомендуется.

Ответы [ 2 ]

3 голосов
/ 22 сентября 2011

Отдельно.

«вместе» называется «Одна таблица истинного поиска» анти-шаблон

См.

3 голосов
/ 22 сентября 2011

Держите их отдельно.

Вам действительно не нужен столбец типа - вы можете просто проверить, существуют ли какие-либо строки в других таблицах, чтобы увидеть, какой это тип.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...