mysql>show tables;
+-------------------------+
| Tables_in_myBase |
+-------------------------+
| groups |
| musicComposition |
+-------------------------+
mysql> describe musicComposition;
+-------------+---------------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+-------------+---------------------+------+-----+---------+----------------+
| id | int(10) unsigned | NO | PRI | NULL | auto_increment |
| author | varchar(512) | NO | MUL | NULL | |
| name | varchar(512) | NO | MUL | NULL | |
| album | varchar(512) | YES | MUL | NULL | |
| yearOfAlbum | year(4) | YES | | NULL | |
| path | mediumtext | NO | | NULL | |
| styleId | tinyint(3) unsigned | NO | MUL | NULL | |
+-------------+---------------------+------+-----+---------+----------------+
mysql> describe groups;
+------------+---------------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+------------+---------------------+------+-----+---------+----------------+
| id | tinyint(3) unsigned | NO | PRI | NULL | auto_increment |
| name | varchar(255) | NO | | NULL | |
| redColor | tinyint(3) unsigned | NO | | NULL | |
| greenColor | tinyint(3) unsigned | NO | | NULL | |
| blueColor | tinyint(3) unsigned | NO | | NULL | |
+------------+---------------------+------+-----+---------+----------------+
MySql (MyISAM). 1 объект во многих группах. Как правильнее реализовать группы.
В сущности изучаю QT и связку его с мускулом. Но суть не в этом. И так к проблеме.
условно в рамках этого топика имеем 2 таблицы:
Код:
Как можно заметить строки в первой таблице описывают основной объект, где есть его primary key = id. Вторая же таблица описывает всевозможные группы к которым может принадлежать основной объект из 1 таблицы. Суть в том что объект может принадлежать к нескольким группам одновременно. А групп может быть неограниченное количество, так что вариант с ENUM отпадает.
Самым очевидным напрашивается создание для каждой группы отдельной таблицы, имя которой будет совпадать с именем группы из 2 таблицы. И в которой будут уже записаны id основных объектов, которые принадлежат к определенной в таблице группе.
Мне этот вариант кажется расточительным, да и не верным. Есть так же и другие мысли где будет общая 3 таблица со столбцами id основного объекта id группы, но тогда неизбежно повторения одних и тех же значений по столбцам...тоже не кажется лучшим выходом.
Как лучше реализовать подобное?
Заранее спасибо всем откликнувшимся.
Стандартная связка многие-ко-многим