|
|
|
Вопрос по Primary key и Foreign key
|
|||
|---|---|---|---|
|
#18+
Здравствуйте! Если я правильно представляю себе реляционную модель, то моё утверждение верно. Пожалуйста, подтвердите, или опровергните. Например, есть 2 таблицы: первая, например, для списка людей (не важно кто они), вторая — для списка товаров, которые эти люди, например, купили. Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. Конкретно вопрос по PRIMARY KEY и FOREIGN KEY. По теории реляционной модели, поскольку таблица dbo.Humans у меня «основная», то я должен ключевому полю в этой таблице назначить PRIMARY KEY. Далее смотрим таблицу dbo.Stuff, конкретно, на её поле humanId : это поле то же самое, что и dbo.Humans.id т.к., я указал для него FOREIGN KEY. Кроме того, поле dbo.Stuff.humanId — уникально, это следует из того, что я объявил для него уникальный кластеризированный индекс HumanId . Утверждение — я НЕ должен объявлять dbo.Stuff.humanId как FOREIGN KEY и PRIMARY KEY одновременно, т.к., это не логично и неправильно с точки теории реляционной модели. К чему это всё. Просто я видел в интернете, как в некоторых примерах показано следующее для таблицы dbo.Stuff: Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.10.2013, 12:27 |
|
||
|
Вопрос по Primary key и Foreign key
|
|||
|---|---|---|---|
|
#18+
Вообще, кстати, нормально когда поле и FOREIGN KEY и PRIMARY KEY одновременно? — разве это не противоречит смыслу? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.10.2013, 12:38 |
|
||
|
Вопрос по Primary key и Foreign key
|
|||
|---|---|---|---|
|
#18+
roman_lenkoВообще, кстати, нормально когда поле и FOREIGN KEY и PRIMARY KEY одновременно? — разве это не противоречит смыслу? Нормально, это связь 1:1. Она, конечно, тоже противоречит здравому смыслу, но широко используется из-за ограничений реляционных СХД. Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.10.2013, 12:52 |
|
||
|
Вопрос по Primary key и Foreign key
|
|||
|---|---|---|---|
|
#18+
roman_lenkoВообще, кстати, нормально когда поле и FOREIGN KEY и PRIMARY KEY одновременно? — разве это не противоречит смыслу? Смыслу противоречат FK и PK, сами по себе, независимо от их использования. Они ориентированы на возможность применения алгебры, а не на следование какому-то смыслу)) В СУБД (в отличие от реляционных СХОД) нет PR и FK в принципе. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.10.2013, 13:55 |
|
||
|
Вопрос по Primary key и Foreign key
|
|||
|---|---|---|---|
|
#18+
Dimitry SibiryakovНормально, это связь 1:1. Она, конечно, тоже противоречит здравому смыслу, но широко используется из-за ограничений реляционных СХД. Да уж.. Хорошо: что лучше тогда (т.е., есть ли разница в производитедьности): объявить для поля PRIMARY KEY (если оно уже FOREIGN KEY), или сделать для него UNIQUE CLUSTERED INDEX? Я понимаю, что понятие первичного ключа и индексы никак не связаны логически, но, блин, в SQL Server PRIMARY KEY автоматически создаёт для поля кластерный индекс!!! — т.е., в технической реализации эти два понятия связаны (говоря уже полностью мудацким языком — «что быстрее — PRIMARY KEY иди UNIQUE CLUSTERED INDEX»? — учтите, я не произносил этой фразы ;) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.10.2013, 13:56 |
|
||
|
Вопрос по Primary key и Foreign key
|
|||
|---|---|---|---|
|
#18+
БредятинаСмыслу противоречат FK и PK, сами по себе, независимо от их использования. Они ориентированы на возможность применения алгебры, а не на следование какому-то смыслу)) В СУБД (в отличие от реляционных СХОД) нет PR и FK в принципе. После такого вот познания хочется спросить: «зачем так жить?» :) Блин, я так долго и постепенно вникал во всё это, чтобы потом услышать, что это всё не имеет смысла — отлично. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.10.2013, 14:00 |
|
||
|
Вопрос по Primary key и Foreign key
|
|||
|---|---|---|---|
|
#18+
roman_lenkoПосле такого вот познания хочется спросить: «зачем так жить?» :) Блин, я так долго и постепенно вникал во всё это, чтобы потом услышать, что это всё не имеет смысла — отлично. Вы вникаете в реляционную теорию БД, не вникая в теорию БД. Так делает подавляющее большинство изучающих БД в силу разных причин)) Не вижу повода расстраиваться - в большинстве быть удобнее во всех отношениях. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.10.2013, 14:14 |
|
||
|
Вопрос по Primary key и Foreign key
|
|||
|---|---|---|---|
|
#18+
БредятинаВы вникаете в реляционную теорию БД, не вникая в теорию БД. Так делает подавляющее большинство изучающих БД в силу разных причин)) Не вижу повода расстраиваться - в большинстве быть удобнее во всех отношениях. Базы данных — не могя специализация; мне пришлось этим заняться сейчас, т.к., пока некому. Я всегда стараюсь вникнуть в техническую реализацию вопроса — с SQL Server это оказалось не так просто. Бредятинав большинстве быть удобнее во всех отношениях Смотря в каком ты «большинстве». ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.10.2013, 14:40 |
|
||
|
Вопрос по Primary key и Foreign key
|
|||
|---|---|---|---|
|
#18+
roman_lenkoБлин, я так долго и постепенно вникал во всё это, чтобы потом услышать, что это всё не имеет смысла — отлично. Так это Вы услышали от того, до кого ничего доходит, вот он и написал ахинею галимую. Это не считается. Вот она сам написал БредятинаДо таких идиотов, как я, конечно, не доходит)) Он просто ждал, что Вы го спросите про смысл, и он Вам подбросит МУМПС. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.10.2013, 14:44 |
|
||
|
Вопрос по Primary key и Foreign key
|
|||
|---|---|---|---|
|
#18+
roman_lenkoБазы данных — не могя специализация; мне пришлось этим заняться сейчас, т.к., пока некому. Я всегда стараюсь вникнуть в техническую реализацию вопроса — с SQL Server это оказалось не так просто. А чтобы вникнуть в техническую реализацию, пришлось вникать в узкую (лежащую в основе конкретной реляционной СХОД) теорию. Понятно. Желаю Вам вникнуть. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.10.2013, 14:48 |
|
||
|
Вопрос по Primary key и Foreign key
|
|||
|---|---|---|---|
|
#18+
vadiminforoman_lenkoБлин, я так долго и постепенно вникал во всё это, чтобы потом услышать, что это всё не имеет смысла — отлично. Так это Вы услышали от того, до кого ничего доходит, вот он и написал ахинею галимую. Это не считается. Вот она сам написал БредятинаДо таких идиотов, как я, конечно, не доходит)) Он просто ждал, что Вы го спросите про смысл, и он Вам подбросит МУМПС. Видите, roman_lenko, как удобно быть в большинстве)) Или не удобно... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.10.2013, 14:50 |
|
||
|
Вопрос по Primary key и Foreign key
|
|||
|---|---|---|---|
|
#18+
vadiminforoman_lenkoБлин, я так долго и постепенно вникал во всё это, чтобы потом услышать, что это всё не имеет смысла — отлично. Так это Вы услышали от того, до кого ничего доходит, вот он и написал ахинею галимую. Это не считается. Вот она сам написал БредятинаДо таких идиотов, как я, конечно, не доходит)) Он просто ждал, что Вы го спросите про смысл, и он Вам подбросит МУМПС. Я с Вами согласен, что нужно обязательно в каждой теме напоминать, что я идиот)) Чтобы избежать накладных расходов, предлагаю разработчикам и модераторам продумать, как это сделать автоматически. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.10.2013, 14:53 |
|
||
|
Вопрос по Primary key и Foreign key
|
|||
|---|---|---|---|
|
#18+
vadiminforoman_lenkoБлин, я так долго и постепенно вникал во всё это, чтобы потом услышать, что это всё не имеет смысла — отлично. Так это Вы услышали от того, до кого ничего доходит, вот он и написал ахинею галимую. Это не считается. Вот она сам написал БредятинаДо таких идиотов, как я, конечно, не доходит)) Он просто ждал, что Вы го спросите про смысл, и он Вам подбросит МУМПС. Очевидная глупость, характерная для умного человека, и специалиста. Хорошо известно, что MUMPS, если речь идет о ней, не является СУБД, и подбрасывать ее пользователям (а автор темы, судя по всему, пользователь) глупо даже для идиота)) Поэтому я никогда и не подбрасываю ничего, а только сообщаю людям факты из теории БД, о которых они не знают. Вам-то хорошо, Вы уже давно все поняли, но сделать ничего не можете - это (неспособность сделать что-либо конструктивное и новое) фундаментальное свойство любого большинства в любой сфере)) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.10.2013, 15:00 |
|
||
|
Вопрос по Primary key и Foreign key
|
|||
|---|---|---|---|
|
#18+
roman_lenkoУтверждение — я НЕ должен объявлять dbo.Stuff.humanId как FOREIGN KEY и PRIMARY KEY одновременно, т.к., это не логично и неправильно с точки теории реляционной модели.Так почему "это не логично и неправильно"? Или это вопрос? Вполне нормальная схема, если учесть, что dbo.Stuff - это всё таки не "товары", как вы почему то пишите, а "сотрудники". Dimitry SibiryakovНормально, это связь 1:1. Она, конечно, тоже противоречит здравому смыслу, но широко используется из-за ограничений реляционных СХД.Какие в данном случае ограничения и почему неправильно? Как такую бизнес-модель данных правильно реализовать, какая схема правильная? Есть люди, есть сотрудники, некоторые из людей являются сотрудниками, сорудник обязательно человек и обязательно один человек, а не множество. В этом случае такая схема единственно правильная. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.10.2013, 15:02 |
|
||
|
Вопрос по Primary key и Foreign key
|
|||
|---|---|---|---|
|
#18+
alexeyvgroman_lenkoУтверждение — я НЕ должен объявлять dbo.Stuff.humanId как FOREIGN KEY и PRIMARY KEY одновременно, т.к., это не логично и неправильно с точки теории реляционной модели.Так почему "это не логично и неправильно"? Или это вопрос? Вполне нормальная схема, если учесть, что dbo.Stuff - это всё таки не "товары", как вы почему то пишите, а "сотрудники". Dimitry SibiryakovНормально, это связь 1:1. Она, конечно, тоже противоречит здравому смыслу, но широко используется из-за ограничений реляционных СХД.Какие в данном случае ограничения и почему неправильно? Как такую бизнес-модель данных правильно реализовать, какая схема правильная? Есть люди, есть сотрудники, некоторые из людей являются сотрудниками, сорудник обязательно человек и обязательно один человек, а не множество. В этом случае такая схема единственно правильная. Да. И для завершенности этой логики было бы правильно, чтобы значения "первичных ключей" сотрудника и человека совпадали бы. И далее автору желательно вникнуть в концепцию "наследования". ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.10.2013, 15:10 |
|
||
|
Вопрос по Primary key и Foreign key
|
|||
|---|---|---|---|
|
#18+
Поскольку рано или поздно "возникнут" сотрудники других организаций (партнеров), или, например, дети сотрудников. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.10.2013, 15:13 |
|
||
|
Вопрос по Primary key и Foreign key
|
|||
|---|---|---|---|
|
#18+
БредятинаПоскольку рано или поздно "возникнут" сотрудники других организаций (партнеров), или, например, дети сотрудников.Внуки заблуждавшегося Дейта... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.10.2013, 15:38 |
|
||
|
Вопрос по Primary key и Foreign key
|
|||
|---|---|---|---|
|
#18+
Sgt.PepperБредятинаПоскольку рано или поздно "возникнут" сотрудники других организаций (партнеров), или, например, дети сотрудников.Внуки заблуждавшегося Дейта... Да, это стиль большинства)) Отточенные формулировки по существу обсуждаемого вопроса. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.10.2013, 15:50 |
|
||
|
Вопрос по Primary key и Foreign key
|
|||
|---|---|---|---|
|
#18+
roman_lenko Если я правильно представляю себе реляционную модель, то моё утверждение верно. Пожалуйста, подтвердите, или опровергните. Например, есть 2 таблицы: первая, например, для списка людей (не важно кто они), вторая — для списка товаров, которые эти люди, например, купили. Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. Тут какой-то пример у тебя неправильный. В таком случае один человек может купить не более одного товара. roman_lenko Конкретно вопрос по PRIMARY KEY и FOREIGN KEY. По теории реляционной модели, поскольку таблица dbo.Humans у меня «основная», В реляционной теории нет понятия "основная таблица". roman_lenkoто я должен ключевому полю в этой таблице назначить PRIMARY KEY. Это ты должен сделать для ЛЮБОЙ таблицы, а не только "основной". Любая таблица, т.е. каждая, должна иметь первичный ключ. roman_lenkoДалее смотрим таблицу dbo.Stuff, конкретно, на её поле humanId : это поле то же самое, что и dbo.Humans.id т.к., я указал для него FOREIGN KEY. Кроме того, поле dbo.Stuff.humanId — уникально, это следует из того, что я объявил для него уникальный кластеризированный индекс HumanId . На кой ляд ты это сделал -- не понятно. roman_lenkoУтверждение — я НЕ должен объявлять dbo.Stuff.humanId как FOREIGN KEY и PRIMARY KEY одновременно, т.к., это не логично и неправильно с точки теории реляционной модели. Утверждение неправильное. roman_lenko К чему это всё. Просто я видел в интернете, как в некоторых примерах показано следующее для таблицы dbo.Stuff: Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. Просто... я... видел... Ты думай, а не по интернету лазий. "одновременно и внешний, и первичный ключ — разве такое возможно логически?" да, возможно. В общем случае принадлежность поля PK и FK никак не взаимоисключающие. "Спрашивается: почему не объявлять индекс?" Вообще, твой пример и этот -- это одно и то же. Уникальный индекс и первичный ключ это по сути одно и то же. и реализуется одинаково -- уникальным индексом. Только в случае PK в системном каталоге СУБД заводится ещё и запись, что это CONSTRAINT, и удалить его можно только ALTER TABLE DROP CONSTRAINT. Физически различия есть, принципиально их нет. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.10.2013, 15:54 |
|
||
|
Вопрос по Primary key и Foreign key
|
|||
|---|---|---|---|
|
#18+
roman_lenkoВообще, кстати, нормально когда поле и FOREIGN KEY и PRIMARY KEY одновременно? — разве это не противоречит смыслу? Абсолютно нормально, никакому смыслу не противоречит. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.10.2013, 15:54 |
|
||
|
Вопрос по Primary key и Foreign key
|
|||
|---|---|---|---|
|
#18+
roman_lenko, Твой пример должен был бы выглядеть вот так хотя бы: Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.10.2013, 15:56 |
|
||
|
Вопрос по Primary key и Foreign key
|
|||
|---|---|---|---|
|
#18+
Dimitry Sibiryakovroman_lenkoВообще, кстати, нормально когда поле и FOREIGN KEY и PRIMARY KEY одновременно? — разве это не противоречит смыслу? Нормально, это связь 1:1. Она, конечно, тоже противоречит здравому смыслу, но широко используется из-за ограничений реляционных СХД. Из-за чего она там используется широко ? Ну-ка расшифруй для народа ... Ну и это не связь 1:1, это связь 1:0..1. И для её существования никаких таких дополнительных ограничений не надо, такого вида связи существуют в пртроде. Например, человек имеет ноль или одного супруга. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.10.2013, 16:01 |
|
||
|
Вопрос по Primary key и Foreign key
|
|||
|---|---|---|---|
|
#18+
roman_lenkoБредятинаСмыслу противоречат FK и PK, сами по себе, независимо от их использования. Они ориентированы на возможность применения алгебры, а не на следование какому-то смыслу)) В СУБД (в отличие от реляционных СХОД) нет PR и FK в принципе. После такого вот познания хочется спросить: «зачем так жить?» :) Блин, я так долго и постепенно вникал во всё это, чтобы потом услышать, что это всё не имеет смысла — отлично. Ты бредятину не слушай вообще, это информационный мусор. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.10.2013, 16:02 |
|
||
|
Вопрос по Primary key и Foreign key
|
|||
|---|---|---|---|
|
#18+
MasterZivroman_lenkoпропущено... После такого вот познания хочется спросить: «зачем так жить?» :) Блин, я так долго и постепенно вникал во всё это, чтобы потом услышать, что это всё не имеет смысла — отлично. Ты бредятину не слушай вообще, это информационный мусор. Разумеется) Правда всегда была информационным мусором для большинства)) Ничего не понимающего в предмете. То есть, даже в реляционной теории, в данном случае. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.10.2013, 16:07 |
|
||
|
Вопрос по Primary key и Foreign key
|
|||
|---|---|---|---|
|
#18+
roman_lenko, У вас человек может сделать только одну покупку только одного товара? Если вы где-то в интернете видели такую таблицу покупок - не ходите больше в такой интернет, ничему хорошему вы там не научитесь. Таблица людей, таблица товаров и между ними - M:M-связка, таблица покупок. Причем со своим первичным ключом, не унаследованным ниоткуда. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.10.2013, 16:10 |
|
||
|
|

start [/forum/topic.php?fid=32&msg=38434578&tid=1541088]: |
0ms |
get settings: |
11ms |
get forum list: |
13ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
153ms |
get topic data: |
11ms |
get forum data: |
3ms |
get page messages: |
57ms |
get tp. blocked users: |
1ms |
| others: | 233ms |
| total: | 490ms |

| 0 / 0 |

Извините, этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
... ля, ля, ля ...