|
|
|
Структура таблицы авторов и исполнителей
|
|||
|---|---|---|---|
|
#18+
Добрый день. Есть таблица(ы) товаров (например книги, аудиокниги, фильмы) У каждого товара есть люди и коллективы, имеющие отношение к этому товару. Например: автор, исполнитель, режиссер, группа и так далее. Подскажите, как наиболее правильно хранить эти данные. Пока вырисовывается такие таблички: 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), то тоже как-то... Отсюда вопрос - что можно поменять в "консерватории"? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.10.2010, 13:00 |
|
||
|
Структура таблицы авторов и исполнителей
|
|||
|---|---|---|---|
|
#18+
Fedor34Отсюда вопрос - что можно поменять в "консерватории"? Зачем? В смысле - какая цель преследуется? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.10.2010, 13:08 |
|
||
|
Структура таблицы авторов и исполнителей
|
|||
|---|---|---|---|
|
#18+
Цель - понять, как это сделать правильно? Или если тут из 2х вариантов есть правильный - узнать какой именно :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.10.2010, 13:12 |
|
||
|
Структура таблицы авторов и исполнителей
|
|||
|---|---|---|---|
|
#18+
Fedor34, Вероятно нужно еще прописать состав коллектива. Ведь если ищем Иванова то он и не может быть в Item2Persons.PersonID т.к. непопадает в Roles, соответственно его нужно также искать и в Collectives. А еще учесть что состав коллективов меняется. Короче, вопрос весьма специфичен. Поэтому обращайтесь к постановщику задачи за более детальными разъяснениями. И нестесняйтесь "трясти" постановщика. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.10.2010, 14:08 |
|
||
|
Структура таблицы авторов и исполнителей
|
|||
|---|---|---|---|
|
#18+
Вероятно нужно еще прописать состав коллектива. Ведь если ищем Иванова то он и не может быть в Item2Persons.PersonID т.к. непопадает в Roles, соответственно его нужно также искать и в Collectives. А еще учесть что состав коллективов меняется. Не, состав коллективов не нужен. Нам не важно, кто там в "ВИАГРЕ" и прочее.. Просто нужно знать что у такого-то диска ВИАГРЫ есть такой-то исполнитель (ВИАГРА), такие-то композиторы, такие-то авторы песен. и всё. И так для любых товаров. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.10.2010, 14:10 |
|
||
|
Структура таблицы авторов и исполнителей
|
|||
|---|---|---|---|
|
#18+
А может в просто в Persons добавить поля: PersonType { Коллектив или один человек } CollectiveName и тогда вообще просто все будет :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.10.2010, 14:45 |
|
||
|
Структура таблицы авторов и исполнителей
|
|||
|---|---|---|---|
|
#18+
Fedor34 таблица = сущность а сущность у вас не авторы и исполнители и названия песен а диски CD or DVD (имхо) вот и делайте базу данных на диски учтите что и диски и книги уже имеют международный код (ай-ди) по которому их можно найти в интернете. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.10.2010, 17:52 |
|
||
|
Структура таблицы авторов и исполнителей
|
|||
|---|---|---|---|
|
#18+
Fedor34, мне тоже кажется что ваш вариант будет интереснее, тем более что не интересно кто там в коллективе опять таки если таблицу с народом организовать в виде дерева (id, pid) то можно указывать коллектив и в "дочках" кто в него входит и в таком варианте получится вязать не только к группе но и к человеку в группе. ИМХО так интереснее. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.10.2010, 18:00 |
|
||
|
Структура таблицы авторов и исполнителей
|
|||
|---|---|---|---|
|
#18+
таблица = сущность а сущность у вас не авторы и исполнители и названия песен а диски CD or DVD (имхо) вот и делайте базу данных на диски Понятное дело, что таблица "дисков" уже есть. Вопрос был про связку таблиц: дисков, авторов, коллективов. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.10.2010, 14:29 |
|
||
|
Структура таблицы авторов и исполнителей
|
|||
|---|---|---|---|
|
#18+
Пока остановился на варианте: Persons : PersonID FirstName LastName IsCollective CollectiveName Disks : DiskID ... Persons2Disks : P2DID DiskID PersonID RoleID ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.10.2010, 14:31 |
|
||
|
Структура таблицы авторов и исполнителей
|
|||
|---|---|---|---|
|
#18+
Fedor34, наберите в гугле -- Free dvd home database много готовых вариантов предлагается ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.10.2010, 15:12 |
|
||
|
|

start [/forum/topic.php?fid=32&msg=36910279&tid=1542471]: |
0ms |
get settings: |
10ms |
get forum list: |
17ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
49ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
47ms |
get tp. blocked users: |
1ms |
| others: | 241ms |
| total: | 382ms |

| 0 / 0 |
