powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / помогите спроектироват file union
7 сообщений из 7, страница 1 из 1
помогите спроектироват file union
    #34837992
p.o.d.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
есть таблица фаилов и нужно сделать "объеденение фаилов" (union), допустим
фаилы индексом 1,4,10,15,123 принадлежит объеденению 1 а фаилы индексом 2,22,53,42,123 объеденению 2.
уникальность таблици fileUnion определяетца fileId + fileUnion уникальная запись ихняя комбинациа должна быть. где fileId возьмыётса из таблици фаилов.
и в чём проблема: во первых не могу сделать fileId foreign key и во вторых
не могу сделать следуюшую запись в fileUnion
unionId fileId
1 1
1 4
1 10
1 15
1 123
2 2
2 22
2 53
2 42
2 123
отказываетса создавать один и одинаковые unionId.
а надо чтоб не было проблемы если я захочу добавить новы фаил в union номер 1.
например:
Код: plaintext
INSERT INTO fileUnion(unionId,fileId) VALUES( 1 , 124 )
или при
Код: plaintext
INSERT INTO fileUnion(fileId) VALUES( 524 )
пусть создаётса новый Union.
...
Рейтинг: 0 / 0
помогите спроектироват file union
    #34838742
Фотография Ennor Tiegael
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В таблице FileUnion нарушается какая-то из нормальных форм, то ли 3НФ, то ли НФБК, не помню уже. Грубо говоря, вы смешиваете понятие "объединение" со служебной many-to-many развязкой.

Вынесите список объединений в отдельную таблицу Unions, и от таблицы FileUnion бросьте на обе оставшиеся по внешнему ключу. Собственно, все - остальное само подхватится.
...
Рейтинг: 0 / 0
помогите спроектироват file union
    #34838864
p.o.d.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ага, понятно, спасибо за совет

за одно и спрошу:
в sql server-е вообше не возможно сделать похожую вешь?
потому что когда я работал на MySql там я всю свою структуры баз строил на подобных навыках.
что уникальность определяетса несколькими полями.

допустим саит многоязычны
и новости надо на разных языках выводить, есть новость "А" на руссом,англиском и французком языке.
значит я не смогу сделать запись в таблице новостеи:
Код: plaintext
1.
2.
3.
4.
newId languageId title description 
   1         1        asd     asd 
   1         2        qwe     qwe 
   1         3        zxc     zxc 
...
Рейтинг: 0 / 0
помогите спроектироват file union
    #34839021
Фотография alexeyvg
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
p.o.d.в sql server-е вообше не возможно сделать похожую вешь?
потому что когда я работал на MySql там я всю свою структуры баз строил на подобных навыках.
что уникальность определяетса несколькими полями.Возможно, конечно.
...
Рейтинг: 0 / 0
помогите спроектироват file union
    #34839057
Фотография Ennor Tiegael
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
p.o.d.значит я не смогу сделать запись в таблице новостеи:
Код: plaintext
1.
2.
3.
4.
newId languageId title description 
   1         1        asd     asd 
   1         2        qwe     qwe 
   1         3        zxc     zxc 
Я думаю, сейчас очень сложно будет найти хоть сколько-нибудь распространенную СУБД, которая бы не позволяла делать составные первичные ключи (ну или составные уникальные ограничения, в общем случае).

Разумеется, MS SQL Server все это позволяет. Собственно, в таблице FileUnion у вас первичный ключ именно таким и получается - из двух полей.
...
Рейтинг: 0 / 0
помогите спроектироват file union
    #34839233
p.o.d.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Ennor Tiegael p.o.d.значит я не смогу сделать запись в таблице новостеи:
Код: plaintext
1.
2.
3.
4.
newId languageId title description 
   1         1        asd     asd 
   1         2        qwe     qwe 
   1         3        zxc     zxc 
Я думаю, сейчас очень сложно будет найти хоть сколько-нибудь распространенную СУБД, которая бы не позволяла делать составные первичные ключи (ну или составные уникальные ограничения, в общем случае).

Разумеется, MS SQL Server все это позволяет. Собственно, в таблице FileUnion у вас первичный ключ именно таким и получается - из двух полей.

я знаю что он таким получаитса, в том и первоя проблема что я не могу сделать FK fileId из таблици фаилов. вот какая картина рисуетса. рис1

и невозможно сделать так чтобы unionId был autoincrement при:
Код: plaintext
INSERT INTO fileUnion(fileId) VALUES( 5 )
и добовлял фаил к 5 - ому union - у при:
Код: plaintext
INSERT INTO fileUnion(unionId,fileId) VALUES( 5 , 5 )
...
Рейтинг: 0 / 0
помогите спроектироват file union
    #34839693
Фотография Ennor Tiegael
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
До того, как браться проектировать базу, неплохо было бы изучить предметную область.

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


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