Должен ли я сделать отдельные таблицы для каждого альбома? - PullRequest
0 голосов
/ 27 февраля 2019

Я работаю над проектом базы данных о музыке и альбомах в MySQL, где я делаю список некоторых популярных исполнителей, их самых продаваемых альбомов и песен, содержащихся в них.Но я неожиданно почувствовал, что делать, когда дело доходит до заполнения названий песен для каждого альбома.Должен ли я составить отдельную таблицу для каждого списка песен или все песни (всего около 50 из всех альбомов) всех разных исполнителей (5 разных исполнителей) должны быть заполнены в одной таблице (яв конце концов вы сможете экспортировать данные и подключить их к папке PHP

Надеюсь, вопрос был ясен

Ответы [ 2 ]

0 голосов
/ 27 февраля 2019

Аналогично этому вопросу о базах данных для плейлистов, вам также следует использовать одну таблицу для альбомов и одну таблицу для песен.

Кроме того, вам также может понадобиться таблица для исполнителей и т. Д..

0 голосов
/ 27 февраля 2019

Все песни должны быть в одной таблице «Песни».Затем вы создаете столбец «Идентификатор альбома» в этой таблице, который является внешним ключом к столбцу идентификатора в таблице альбомов.Так вы узнаете, какая песня принадлежит какому альбому.(И, конечно, у вас такие же отношения между «альбомом» и «исполнителем».)

Это называется отношением «один ко многим» и является одним из основных принципов проектирования реляционных баз данных..

Если вы когда-либо создавали несколько таблиц для представления одного и того же вида элемента данных, вы знаете, что ошиблись.

NB. Если вы хотите поддержать идею о том, что одну и ту же песню (или, возможно, более точную дорожку, поскольку потенциально можно сделать много разных записей песни) можно включить в несколько альбомов, тогда вы 'Вам нужно будет реализовать отношение «многие ко многим», когда у вас есть дополнительная таблица между «альбомами» и «песнями», которая содержит идентификатор альбома и идентификатор песни.Каждый из них будет внешним ключом обратно в таблицы «Альбомы» и «Песни» соответственно.И чтобы избежать дублирования, оба поля будут указаны как составной первичный ключ.Таким образом, вы можете перечислить один и тот же идентификатор песни в этой таблице несколько раз для разных альбомов.То же самое, если вы хотите иметь такую ​​гибкость в отношениях между «художниками» и «альбомами».

Это может быть подходящее время, чтобы сделать перерыв и более детально изучить концепции проектирования реляционных баз данных и нормализации данных.тогда вы сможете сами увидеть эти шаблоны и принять правильное решение в своих схемах.

...