powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / Оцените структуру БД Музыки
16 сообщений из 16, страница 1 из 1
Оцените структуру БД Музыки
    #36442896
inc-dec-i
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Добрый день, форумчане.

Я недавно начал изучать язык SQL и в частности проектирование баз данных. Поэтому хотелось бы услышать мнение более опытных разработчиков, да и вообще, критика - стимулятор роста))) От слов к делу.

База данных музыкальных файлов. Схема БД лежит во вложении. Хотелось бы чтобы Вы высказали свои замечания, и подсказали бы ответы на следующие вопросы:
1. Я вроде старался привести базу к 3НФ. И вроде бы нарушений 3НФ не вижу, но возможно это от недостатка опыта. Вопрос: База находится в 3НФ?
2. Таблица Tracks получилась достаточно большой, содержит много столбцов, но вроде как все столбцы характеризуют сущность музыкального произведения. Вопрос: Нужно ли как-то разбивать эту таблицу на более мелкие? Не создаст такая большая таблица трудности впоследствии при эксплуатации БД?

База будет реализовываться на MS SQL 2008 EE. Заранее спасибо за отзывы и конструктивную критику.
...
Рейтинг: 0 / 0
Оцените структуру БД Музыки
    #36442920
inc-dec-i
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Непойму как тут файл приложить к сообщению
...
Рейтинг: 0 / 0
Оцените структуру БД Музыки
    #36443536
Toshik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Как-то все сумбурно.
TrackNumbers наверняка должен быть связан с Albums. Или от куда ты будешь брать номера треков? Из альбомов или из некого общего списка?
Подумай есть ли смысл Years и Albums делить на два справочника? В общем я бы пересмотрел необходимость иметь кучу справочников.
Цель то какова? Что с помощью этой базы хочешь потом делать?
...
Рейтинг: 0 / 0
Оцените структуру БД Музыки
    #36446220
maniac85
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
а што такое таблица tracknumbers?)
...
Рейтинг: 0 / 0
Оцените структуру БД Музыки
    #36446531
Фотография bootty
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Как меломан с большим стажем и большой коллекцией, скажу так... :)

1. Можно добавить тип альбома. Навскидку: студийный, концертный, сборник типа best of, переиздание старого альбома, сплит (совместный альбом 2-3-n исполнителей), просто сборная солянка (типа 145 хитов Радио Шансон)))
2. Стиль можно вешать не на песню, а на альбом. И лучше дать возможность повесить несколько стилей. Для сборной солянки разных стилей - various.
3. Как быть, если в альбоме более 1 диска? Нумерация каждого обычно идет с 1. Да и зачем вообще отдельный справочник номеров песен? Можно сделать так: альбом - диск (либо другой носитель, кстати тоже можно справочник) - песня на носителе.
3. Locations - не совсем понятно, что имеется ввиду. Есть студии звукозаписи, на которых выпускаются альбомы (но не песни) - можно ввести справочником. Есть страны, откуда родом музыканты (но не песни). Или что-то другое?
4. Rating. Чей? Откуда? А как быть, если песню оценили более 1 человека? А если кто-то оценивает альбом целиком?
5. AlbumAutors. А надо ли? Можно всегда вытащить через песни. (Кстати, aut h ors, если только мы не в Испании)))
6. Bitrates, Extensions. Не расширение, а формат или кодек. И как быть с mp3 или ogg с переменным битрейтом? Заводить всё от VBR 1 kbps до VBR 700 kbps?
7. Tracks. Comment, Descripton - что есть что? Filename, Link, FullPath - куда пути и ссылки?

Т.к. дальнейшая цель использования БД непонятна, то остановлюсь.. :)
...
Рейтинг: 0 / 0
Оцените структуру БД Музыки
    #36446610
Фотография Сергей Васкецов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я обычно подобные поделки не обсуждаю, но тут решил высказаться.
1. К "я бы пересмотрел необходимость иметь кучу справочников" +500. На битрейт и год справочник уж точно не надо. На кодек - возможно надо, только если от кодека что-то получить хочется. В 99,99% случаев достаточно просто поля, куда пихать значения типа flac, ape и т.п.
2. Фото из справочника артистов вообще убрать. Если уж хочется фото, это надо делать отдельной табличкой.

Вообще, надо приучаться к модульности и отсутствию излишней связанности при проектировании БД. Большая проблема очень многих людей в том, что они не видят, к чему приведет минимальное возможное изменение техзадания на БД. А оно не должно приводить к тому, что придется всё переделывать. Если это не просто диплом типа "сдал-забыл", тем более. При промышленной эксплуатации систем легкость поддержки и развития становится вообще краеугольным камнем и дамокловым мечом (в зависимости от радиуса кривизны рук). Поэтому в вашем варианте:
1. Как только появится необходимость прицепить 2-е фото музыканта, придется думать.
2. Как только придется необходимость прицепить скан диска, придется думать.
3. После 1 и 2 придется думать, почему фото музыканта и фото диска лежат в разных табличках, тогда как обе сущности суть фото, и вообще на обложке диска может быть изображен сам музыкант в виде вполне себе приличного фото.
4. Дополнительно. Насчет кодека - даже если потом потребуется сделать отдельный справочник кодеков и на него навесить какую-то логику, это всегоа можно будет легко сделать минимальным движением серого вещества: само же уникальное имя кодека, которое будет использоваться в варианте без справочника, будет уникальным кодом (или даже PK, кому как нравится) в справочнике.
...
Рейтинг: 0 / 0
Оцените структуру БД Музыки
    #36448096
inc-dec-i
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Прошу прощения, что не пояснил сразу предназначение БД. Базу хочу использовать в очередной программе-каталогизаторе музыки.

Toshik
Номера треков - это поле "Номер дорожки" из информации, например, об mp3 файле в ID3v1. Как я понимаю берется оно с номера дорожки в альбоме, или номера трека с диска, если это какой-то сборник.
О необходимости иметь кучу справочников - спасибо - ценный совет, решил не делать и удалить лишние таблицы.
Цель применения базы см. начало поста))

bootty
Многие замечания взял на заметку, спасибо. Добавил тип альбома. Стиль решил наоборот вешать все-таки на песню, т.к. в ID3v1 стиль есть у каждой песни, а уж стиль всего альбома, тогда определять по песням входящим в него. Про нумерацию см. выше. Location - место расположения трека. Т.е. например: HDD, CD, DVD, грамм-пластинка и т.д.))) Rating - рейтинг выставленный пользователем проги музыкальной композиции. Comment поле из ID3v1, Description - описание в проге заданное. Link - поле из ID3v1. FileName - имя физического файла, FullPath - путь к файлу если Location = HDD. Со временем хотелось бы добавить к проге помимо возможности катологизации, возможность проигрывать файл прямо из проги. Вот тут вот Location и FullPath пригодятся.

Сергей Васкецов
Спасибо за идею про фото, сделал отдельную таблицу.

Спасибо всем кто откликнулся, постарался максимально учесть ваши замечания. Во вложении вторая версия базы)))
...
Рейтинг: 0 / 0
Оцените структуру БД Музыки
    #36449505
Toshik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Уже лучше! Я вот только не совсем понимаю необходимости иметь таблицу TrackAutors.
...
Рейтинг: 0 / 0
Оцените структуру БД Музыки
    #36450075
inc-dec-i
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
TrackAuthors - вспомогательная таблица для реализации связи: многие ко многим. Т.е. например, несколько групп могут совместно записать одну песню, ну и наоборот несколько песен может принадлежать одной группе.
...
Рейтинг: 0 / 0
Оцените структуру БД Музыки
    #36452386
Фотография bootty
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
inc-dec-iПрошу прощения, что не пояснил сразу предназначение БД. Базу хочу использовать в очередной программе-каталогизаторе музыки.А каков будет сценарий использования программы, можно полюбопытствовать? Судя по наличию путей к файлам, будет примерно так: скармливаю программе папку с музыкой, и она сама хитрым образом заполняет эту базу, так?

Не взлетит. Взлетит лишь в одном случае, когда перед этим во всех файлах кто-то тщательно ручками прописал и перепроверил все тэги. Иначе в базе будут исполнители "The Beatles", "Beatles", "Beatles, the" и т.п. (названия песен и альбомов, стилей - аналогично, даже при использовании CDDB).

При другом же сценарии (при ручном добавлении информации) замумукаешься забивать всё и прописывать пути...

Мой выбор - аккуратно разложить по папочкам типа Жанр(ы)\Исполнитель (Страна)\Альбом\Песня или 1-я буква\Исполнитель (Страна)[Жанр(ы)]\Альбом\Песня , а потом скормить это каталогизатору типа MPEG Audio Collection. Сейчас уже таким образом отсортировано около 400Gb (более 50000 песен), и примерно столько же на очереди. Получающийся каталог можно посмотреть по ссылке . Отчет можно настроить самому из программы.

Из минусов подхода - каталогизация только файлов на компьютере. С другой стороны, единицам требуется больше. Многих и встроенная библиотека Winamp'а устраивает.
...
Рейтинг: 0 / 0
Оцените структуру БД Музыки
    #36452431
maniac85
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
boottyС другой стороны, единицам требуется больше. Многих и встроенная библиотека Winamp'а устраивает.Многим и она не нужна вовсе, папки по алфавиту и хорош.
Человек тренируется, базы данных вон лепит, занятие благородное и без практического применения)
...
Рейтинг: 0 / 0
Оцените структуру БД Музыки
    #36452456
Фотография Сергей Васкецов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
boottyкогда перед этим во всех файлах кто-то тщательно ручками прописал и перепроверил все тэги. Иначе в базе будут исполнители "The Beatles", "Beatles", "Beatles, the" и т.п. (названия песен и альбомов, стилей - аналогично, даже при использовании CDDB)
Вообще-то это ETL пишется от структуры БД, а никак не наоброт. Вы ж наверное не предлагаете к каждой сущности навесить еще таблички с "синонимами"?
...
Рейтинг: 0 / 0
Оцените структуру БД Музыки
    #36452618
Фотография bootty
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
maniac85Многим и она не нужна вовсе, папки по алфавиту и хорош.
Человек тренируется, базы данных вон лепит, занятие благородное и без практического применения)При количестве папок более 100 уже тяжеловато ориентироваться в группах и стилях. А базы лучше делать хоть с каким-то практическим применением, а не модель сферической БД в вакууме :)
Сергей ВаскецовВообще-то это ETL пишется от структуры БД, а никак не наоброт. Вы ж наверное не предлагаете к каждой сущности навесить еще таблички с "синонимами"?Не к каждой, разумеется. Но если бы писал для онлайн-сервиса, то постарался бы предусмотреть такую возможность для основных сущностей.
...
Рейтинг: 0 / 0
Оцените структуру БД Музыки
    #36454643
Фотография Сергей Васкецов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
boottyНо если бы писал для онлайн-сервиса, то постарался бы предусмотреть такую возможность для основных сущностей.
Это настройка ETL (в Вашем применении БД), поэтому к самим данным непосредственного отношения не имеет. Это примерно как обосновать кроме необходимости внесения в синонимы "Beatles" еще и "Битлы", "Жуки", "Bitlz" и т.п. В общем, это примерно как желание увековечить ошибки, вместо желания их исправить. В инете достаточно утилит, чтобы пройтись по папкам и поправить теги mp3 как надо.
...
Рейтинг: 0 / 0
Оцените структуру БД Музыки
    #36454781
Фотография bootty
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Сергей ВаскецовЭто настройка ETL (в Вашем применении БД), поэтому к самим данным непосредственного отношения не имеет. Это примерно как обосновать кроме необходимости внесения в синонимы "Beatles" еще и "Битлы", "Жуки", "Bitlz" и т.п. В общем, это примерно как желание увековечить ошибки, вместо желания их исправить.Конечно, всё так. Но всегда найдется кто-то, кто будет утверждать, что какой-то вариант исправления неверен.
...
Рейтинг: 0 / 0
Оцените структуру БД Музыки
    #36456172
*
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
*
Гость
1. Альбом может содержать несколько дисков (каждый со своим ID). Нумерация треков у каждого с единицы.
2. Альбом может состоять из нескольких больших произведений. Каждое может состоять из нескольких частей. Каждая часть может быть записана на нескольких треках (нумерация не обязательно с единицы), возможно, на разных дисках.
...
Рейтинг: 0 / 0
16 сообщений из 16, страница 1 из 1
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / Оцените структуру БД Музыки
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]