|
|
|
помогите спроектироват file union
|
|||
|---|---|---|---|
|
#18+
есть таблица фаилов и нужно сделать "объеденение фаилов" (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 Код: plaintext ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.10.2007, 12:17 |
|
||
|
помогите спроектироват file union
|
|||
|---|---|---|---|
|
#18+
В таблице FileUnion нарушается какая-то из нормальных форм, то ли 3НФ, то ли НФБК, не помню уже. Грубо говоря, вы смешиваете понятие "объединение" со служебной many-to-many развязкой. Вынесите список объединений в отдельную таблицу Unions, и от таблицы FileUnion бросьте на обе оставшиеся по внешнему ключу. Собственно, все - остальное само подхватится. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.10.2007, 15:47 |
|
||
|
помогите спроектироват file union
|
|||
|---|---|---|---|
|
#18+
ага, понятно, спасибо за совет за одно и спрошу: в sql server-е вообше не возможно сделать похожую вешь? потому что когда я работал на MySql там я всю свою структуры баз строил на подобных навыках. что уникальность определяетса несколькими полями. допустим саит многоязычны и новости надо на разных языках выводить, есть новость "А" на руссом,англиском и французком языке. значит я не смогу сделать запись в таблице новостеи: Код: plaintext 1. 2. 3. 4. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.10.2007, 16:27 |
|
||
|
помогите спроектироват file union
|
|||
|---|---|---|---|
|
#18+
p.o.d.в sql server-е вообше не возможно сделать похожую вешь? потому что когда я работал на MySql там я всю свою структуры баз строил на подобных навыках. что уникальность определяетса несколькими полями.Возможно, конечно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.10.2007, 17:30 |
|
||
|
помогите спроектироват file union
|
|||
|---|---|---|---|
|
#18+
p.o.d.значит я не смогу сделать запись в таблице новостеи: Код: plaintext 1. 2. 3. 4. Разумеется, MS SQL Server все это позволяет. Собственно, в таблице FileUnion у вас первичный ключ именно таким и получается - из двух полей. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.10.2007, 17:43 |
|
||
|
помогите спроектироват file union
|
|||
|---|---|---|---|
|
#18+
Ennor Tiegael p.o.d.значит я не смогу сделать запись в таблице новостеи: Код: plaintext 1. 2. 3. 4. Разумеется, MS SQL Server все это позволяет. Собственно, в таблице FileUnion у вас первичный ключ именно таким и получается - из двух полей. я знаю что он таким получаитса, в том и первоя проблема что я не могу сделать FK fileId из таблици фаилов. вот какая картина рисуетса. рис1 и невозможно сделать так чтобы unionId был autoincrement при: Код: plaintext Код: plaintext ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.10.2007, 18:49 |
|
||
|
помогите спроектироват file union
|
|||
|---|---|---|---|
|
#18+
До того, как браться проектировать базу, неплохо было бы изучить предметную область. В данном случае многое зависит от того, может один файл содержаться в нескольких разных объединениях, или нет. Если не может, то структура получается почти как ваша, только вот направление внешних ключей будет противоположным (верхняя схема). Если же может, то используйте нижний вариант. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.10.2007, 02:47 |
|
||
|
|

start [/forum/topic.php?fid=32&gotonew=1&tid=1544273]: |
0ms |
get settings: |
9ms |
get forum list: |
17ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
176ms |
get topic data: |
10ms |
get first new msg: |
5ms |
get forum data: |
2ms |
get page messages: |
46ms |
get tp. blocked users: |
2ms |
| others: | 229ms |
| total: | 502ms |

| 0 / 0 |
