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

Есть таблица(ы) товаров (например книги, аудиокниги, фильмы)
У каждого товара есть люди и коллективы, имеющие отношение к этому товару. Например: автор, исполнитель, режиссер, группа и так далее.

Подскажите, как наиболее правильно хранить эти данные.
Пока вырисовывается такие таблички:

Roles [RoleID, RoleName] - таблица ролей (автор, исполнитель, режиссер и т.д.)
Persons [PersonID, FirstName, LastName, ...] - таблица людей
Collectives [CollectiveID, CollectiveName] - таблица коллективов/групп (вида "Чай Вдвоем", "ВИА ГРА")
Item2Persons [ItemID, EntityID, PersonID [NULL], CollectiveID [NULL], RoleID] - табличка связка товаров и относящихся к ней людей и коллективов:
ItemID и EntityID указываются товар какой сущности (видео, аудио, книга), и под каким ID
RoleID - какую роль играет этот человек или коллектив по отношению к товару
PersonID или CollectiveID - кто именно

Сейчас меня смущает, что как-то некрасиво хранится в одной записи и PersonID и CollectiveID...
Хотя в одной записи может быть только одно либо то, либо другое.
Если хранить просто: RelatedID, RelatedType - только ID чего-то одного и в поле RelatedType указывать, из какой таблички RelatedID надо брать (из Collectives или из Persons), то тоже как-то...

Отсюда вопрос - что можно поменять в "консерватории"?
...
Рейтинг: 0 / 0
Структура таблицы авторов и исполнителей
    #36909373
Злой Бобр
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Fedor34Отсюда вопрос - что можно поменять в "консерватории"?
Зачем? В смысле - какая цель преследуется?
...
Рейтинг: 0 / 0
Структура таблицы авторов и исполнителей
    #36909382
Fedor34
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Цель - понять, как это сделать правильно?
Или если тут из 2х вариантов есть правильный - узнать какой именно :)
...
Рейтинг: 0 / 0
Структура таблицы авторов и исполнителей
    #36909553
Злой Бобр
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Fedor34,

Вероятно нужно еще прописать состав коллектива. Ведь если ищем Иванова то он и не может быть в Item2Persons.PersonID т.к. непопадает в Roles, соответственно его нужно также искать и в Collectives. А еще учесть что состав коллективов меняется.

Короче, вопрос весьма специфичен. Поэтому обращайтесь к постановщику задачи за более детальными разъяснениями. И нестесняйтесь "трясти" постановщика.
...
Рейтинг: 0 / 0
Структура таблицы авторов и исполнителей
    #36909558
Fedor34
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Вероятно нужно еще прописать состав коллектива. Ведь если ищем Иванова то он и не может быть в Item2Persons.PersonID т.к. непопадает в Roles, соответственно его нужно также искать и в Collectives. А еще учесть что состав коллективов меняется.

Не, состав коллективов не нужен. Нам не важно, кто там в "ВИАГРЕ" и прочее..
Просто нужно знать что у такого-то диска ВИАГРЫ есть такой-то исполнитель (ВИАГРА), такие-то композиторы, такие-то авторы песен. и всё.
И так для любых товаров.
...
Рейтинг: 0 / 0
Структура таблицы авторов и исполнителей
    #36909639
Fedor34
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
А может в просто в Persons добавить поля:

PersonType { Коллектив или один человек }
CollectiveName

и тогда вообще просто все будет :)
...
Рейтинг: 0 / 0
Структура таблицы авторов и исполнителей
    #36910252
nosov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Fedor34

таблица = сущность
а сущность у вас не авторы и исполнители и названия песен
а диски CD or DVD (имхо)
вот и делайте базу данных на диски
учтите что и диски и книги уже имеют международный код (ай-ди)
по которому их можно найти в интернете.
...
Рейтинг: 0 / 0
Структура таблицы авторов и исполнителей
    #36910279
Nushi
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Fedor34,

мне тоже кажется что ваш вариант будет интереснее, тем более что не интересно кто там в коллективе
опять таки если таблицу с народом организовать в виде дерева (id, pid) то можно указывать коллектив и в "дочках" кто в него входит
и в таком варианте получится вязать не только к группе но и к человеку в группе.
ИМХО так интереснее.
...
Рейтинг: 0 / 0
Структура таблицы авторов и исполнителей
    #36918093
Fedor34
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
таблица = сущность
а сущность у вас не авторы и исполнители и названия песен
а диски CD or DVD (имхо)
вот и делайте базу данных на диски

Понятное дело, что таблица "дисков" уже есть.
Вопрос был про связку таблиц: дисков, авторов, коллективов.
...
Рейтинг: 0 / 0
Структура таблицы авторов и исполнителей
    #36918101
Fedor34
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Пока остановился на варианте:

Persons :
PersonID
FirstName
LastName
IsCollective
CollectiveName

Disks :
DiskID
...

Persons2Disks :
P2DID
DiskID
PersonID
RoleID
...
Рейтинг: 0 / 0
Структура таблицы авторов и исполнителей
    #36918215
nosov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Fedor34,

наберите в гугле -- Free dvd home database
много готовых вариантов предлагается
...
Рейтинг: 0 / 0
Структура таблицы авторов и исполнителей
    #36918318
Nushi
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Fedor34,

подумай над тем что бы сделать древовидное представление персон, сможешь делать хоть коллективы, хоть одного человека, за то все достаточно наглядно и гибко будет.
...
Рейтинг: 0 / 0
12 сообщений из 12, страница 1 из 1
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / Структура таблицы авторов и исполнителей
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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