|
|
|
многозначные связи (M:N)
|
|||
|---|---|---|---|
|
#18+
Всем здравствуйте, я новичок и у меня возник вопрос. Для N:M связей нужна промежуточная таблица. Например связь между таблицей "клиент" и таблицей "фирма" М:N. Создается промежуточная таблица "товар". Первичный ключ в промежуточной таблице - это сочетание внешних ключей первых двух таблиц. Можно ли сохранять помимо внешних ключей первых двух таблиц, еще и запись из них. Скажем с таблица клиент переносится в таблицу товар внешний ключ и имя клиента... Скажите это технически неправильно или все таки тут разницы особой нет? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.10.2015, 20:46:27 |
|
||
|
многозначные связи (M:N)
|
|||
|---|---|---|---|
|
#18+
funch, без проблем. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.10.2015, 20:54:59 |
|
||
|
многозначные связи (M:N)
|
|||
|---|---|---|---|
|
#18+
funchМожно ли сохранять помимо внешних ключей первых двух таблиц, еще и запись из них. Скажем с таблица клиент переносится в таблицу товар внешний ключ и имя клиента...Я вообще не понял эту формулировку. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.10.2015, 21:57:34 |
|
||
|
многозначные связи (M:N)
|
|||
|---|---|---|---|
|
#18+
miksoft, сохранять в промежуточную таблицу (товар) внешние ключи от участвующих в связи таблиц (клиент, фирма), а так же и другие записи от таблиц клиент и фирма. Например имена клиентов с таблицы "клиент" хранятся так же в таблице "товар". Не знаю понятно ли объяснил в этот раз.... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.10.2015, 22:20:11 |
|
||
|
многозначные связи (M:N)
|
|||
|---|---|---|---|
|
#18+
funch, да вы вместо объяснений приведите ему простейший пример, он и поймет. У нас тут на форуме проще всего приводить примеры типа таких. Код: sql 1. 2. 3. 4. 5. 6. 7. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.10.2015, 22:28:42 |
|
||
|
многозначные связи (M:N)
|
|||
|---|---|---|---|
|
#18+
Lumix, спасибо за совет )) тогда если на этом примере, что то вроде этого... Код: sql 1. 2. 3. 4. 5. 6. 7. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.10.2015, 22:43:10 |
|
||
|
многозначные связи (M:N)
|
|||
|---|---|---|---|
|
#18+
funch, да, это возможно, только это лишние телодвижения, потому что с добавленными вами полями в таблицу map 1) select * перестанет работать, потому что не будет знать какой именно userTit брать и вам придется а) либо вручную перечислять поля б) либо в таблице map дать другие названия типа mapUserTit, mapWareTit 2) select который я вам дал уже содержит в себе поля userTit и wareTit, поэтому вам рекомендуется сильно задуматься действительно ли вам так важны эти доп.поля в таблице map но если вдруг они действительно важны, то sql этого не запрещает лишь бы в этом был смысл ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.10.2015, 22:48:38 |
|
||
|
многозначные связи (M:N)
|
|||
|---|---|---|---|
|
#18+
funch Код: sql 1. Вот теперь понял :) Да, так делать можно. Правда, не то чтобы совсем без проблем (если речь о хранении текущих названий, а не исторических), но можно. В моей практике такое обычно бывает, когда нужно сохранить исторические данные. Например, как именно назывался товар и как именно назывался клиент во время выполнения заказа. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.10.2015, 22:53:56 |
|
||
|
многозначные связи (M:N)
|
|||
|---|---|---|---|
|
#18+
Lumix, Спасибо вам большое за ответ. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.10.2015, 22:56:32 |
|
||
|
многозначные связи (M:N)
|
|||
|---|---|---|---|
|
#18+
miksoft, Спасибо ))) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.10.2015, 23:01:14 |
|
||
|
многозначные связи (M:N)
|
|||
|---|---|---|---|
|
#18+
funchВсем здравствуйте, я новичок и у меня возник вопрос. Для N:M связей нужна промежуточная таблица. Например связь между таблицей "клиент" и таблицей "фирма" М:N. Создается промежуточная таблица "товар". Первичный ключ в промежуточной таблице - это сочетание внешних ключей первых двух таблиц. Можно ли сохранять помимо внешних ключей первых двух таблиц, еще и запись из них. Скажем с таблица клиент переносится в таблицу товар внешний ключ и имя клиента... Скажите это технически неправильно или все таки тут разницы особой нет? >> Скажите это технически неправильно или все таки тут разницы особой нет? Разница есть. Без понимания зачем -- так не делайте. Если озвучите причину сего действа -- можно будет обсудить правильно-неправильно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.10.2015, 23:51:28 |
|
||
|
многозначные связи (M:N)
|
|||
|---|---|---|---|
|
#18+
funchМожно ли сохранять помимо внешних ключей первых двух таблиц, еще и запись из них. Скажем с таблица клиент переносится в таблицу товар внешний ключ и имя клиента... Можно. Называется "денормализация". funchСкажите это технически неправильно или все таки тут разницы особой нет? Это технически неправильно . Кроме того, это и не нужно , всё что тут экономится -- один JOIN по ключу. Это копейки. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.10.2015, 10:14:22 |
|
||
|
многозначные связи (M:N)
|
|||
|---|---|---|---|
|
#18+
Lumixfunch, да, это возможно, только это лишние телодвижения, потому что с добавленными вами полями в таблицу map 1) select * перестанет работать, потому что не будет знать какой именно userTit брать и вам придется Нашёл, тоже мне, проблему... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.10.2015, 10:15:18 |
|
||
|
многозначные связи (M:N)
|
|||
|---|---|---|---|
|
#18+
javajdbcfunchВсем здравствуйте, я новичок и у меня возник вопрос. Для N:M связей нужна промежуточная таблица. Например связь между таблицей "клиент" и таблицей "фирма" М:N. Создается промежуточная таблица "товар". Первичный ключ в промежуточной таблице - это сочетание внешних ключей первых двух таблиц. Можно ли сохранять помимо внешних ключей первых двух таблиц, еще и запись из них. Скажем с таблица клиент переносится в таблицу товар внешний ключ и имя клиента... Скажите это технически неправильно или все таки тут разницы особой нет? >> Скажите это технически неправильно или все таки тут разницы особой нет? Разница есть. Без понимания зачем -- так не делайте. Если озвучите причину сего действа -- можно будет обсудить правильно-неправильно. А не должно уже быть причин так делать. 5.7 -- и все дела... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.10.2015, 10:16:03 |
|
||
|
|

start [/forum/topic.php?fid=47&fpage=121&tid=1832565]: |
0ms |
get settings: |
8ms |
get forum list: |
15ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
27ms |
get topic data: |
8ms |
get forum data: |
2ms |
get page messages: |
45ms |
get tp. blocked users: |
1ms |
| others: | 191ms |
| total: | 303ms |

| 0 / 0 |
