Я планирую создать базу данных, где храню большой объем данных о музыке. Я сохраняю информацию, относящуюся к песне, в таблице db_song
. Я хотел бы также хранить жанры, инструментов, образцов и плейлистов. Поскольку одна песня может иметь несколько жанров, инструменты, образцы и списки воспроизведения, большой вопрос:Нормализованная или денормализованная база данных для аналогичных данных
Имеет ли смысл для:
- магазин все эти 4 данные в отдельных таблицах
- магазин все эти 4 данные в одной таблице, а запись типа в отдельной колонке
база данных будет часто обновляться, но пользователи будут запрашивать данные даже чаще.
Благодарим за помощь.
Edit:
Как было предложено Amit с вышеуказанной установкой, было бы много дублированных данных. Что касается сохранения жанров и значений инструмента и названий списков воспроизведения в отдельных таблицах, а также жанровых, инструментальных и плейлистных отношений (элемент для песни) в еще трех таблицах.
Так что новые сценарии:
- Храни все эти 4 данных в отдельных таблицах + еще 4 таблицы для хранения пункта-к-песни отношениям
- хранить все эти 4 данных в виде одиночный стол и запись тип в отдельной колонке + отношение к песне в другой колонке
Производительность - это только один аспект дублирования данных. Другим аспектом является управление данными. Вы хотите, чтобы большая часть вашего управления данными была автоматизирована. Но есть вещи, которые вам придется делать вручную. Если вы не будете осторожны, ручная обработка миллионов строк займет все ваше время. И неуправляемые данные гниют. –