|  | 
| 
Организовать связь записей в одной таблице | |||
|---|---|---|---|
| #18+ Здравствуйте. Есть таблица Человек. У каждого человека есть множество дружеских и деловых связей из таких же людей из этой же таблицы. Как правильно схематично нарисовать эту связь? Нужны ли дополнительные таблицы и как будет организована связь между ними? Спасибо! ... | |||
| : 
 Нравится:
     Не нравится:
     | |||
| 05.06.2021, 13:14 |  | ||
| 
Организовать связь записей в одной таблице | |||
|---|---|---|---|
| #18+ Обычная связь M:N, сразу из учебника. Да, в физической модели будет дополнительная таблица. Posted via ActualForum NNTP Server 1.5 ... | |||
| : 
 Нравится:
     Не нравится:
     | |||
| 05.06.2021, 13:16 |  | ||
| 
Организовать связь записей в одной таблице | |||
|---|---|---|---|
| #18+ Dimitry Sibiryakov, Сложность в том, что таблица одна. Как сделать m:n для одной таблицы? ... | |||
| : 
 Нравится:
     Не нравится:
     | |||
| 05.06.2021, 13:33 |  | ||
| 
Организовать связь записей в одной таблице | |||
|---|---|---|---|
| #18+ В логической модели - кривая (кольцевая) связь. В физической - таблица связи с двумя FK на  главную. В чём проблема-то? Posted via ActualForum NNTP Server 1.5 ... | |||
| : 
 Нравится:
     Не нравится:
     | |||
| 05.06.2021, 13:44 |  | ||
| 
Организовать связь записей в одной таблице | |||
|---|---|---|---|
| #18+ Таблица "лицо" у него ключевое поле лицо_id Таблица "Связь" у не ключевое поле связь_id и два поля "лицо1_id" и "лицо2_id" Поля "лицо1_id" и "лицо2_id" связаны с лицо_id? Так? ... | |||
| : 
 Нравится:
     Не нравится:
     | |||
| 05.06.2021, 13:51 |  | ||
| 
Организовать связь записей в одной таблице | |||
|---|---|---|---|
| #18+ SilbermannПоля "лицо1_id" и "лицо2_id" связаны с лицо_id? Так? Да. Разве это не самоочевидно?.. Posted via ActualForum NNTP Server 1.5 ... | |||
| : 
 Нравится:
     Не нравится:
     | |||
| 05.06.2021, 13:53 |  | ||
| 
Организовать связь записей в одной таблице | |||
|---|---|---|---|
| #18+ Я делаю в access, он мне пишет, что не сможет обеспечить целостность данных ... | |||
| : 
 Нравится:
     Не нравится:
     | |||
| 05.06.2021, 13:54 |  | ||
| 
Организовать связь записей в одной таблице | |||
|---|---|---|---|
| #18+ Так делай в приличной СУБД. MS SQL, например. Posted via ActualForum NNTP Server 1.5 ... | |||
| : 
 Нравится:
     Не нравится:
     | |||
| 05.06.2021, 14:02 |  | ||
| 
Организовать связь записей в одной таблице | |||
|---|---|---|---|
| #18+ Dimitry Sibiryakov, Нет выбора, к сожалению ... | |||
| : 
 Нравится:
     Не нравится:
     | |||
| 05.06.2021, 14:18 |  | ||
| 
Организовать связь записей в одной таблице | |||
|---|---|---|---|
| #18+ Silbermann Я делаю в access, он мне пишет, что не сможет обеспечить целостность данных Значит, есть ссылка на отсутствующую строку. Не? ... | |||
| : 
 Нравится:
     Не нравится:
     | |||
| 05.06.2021, 16:13 |  | ||
| 
Организовать связь записей в одной таблице | |||
|---|---|---|---|
| #18+ Не, просто аксесс такой тупой, что не умеет в foreign key. Posted via ActualForum NNTP Server 1.5 ... | |||
| : 
 Нравится:
     Не нравится:
     | |||
| 05.06.2021, 17:06 |  | ||
| 
Организовать связь записей в одной таблице | |||
|---|---|---|---|
| #18+ Dimitry Sibiryakov Не, просто аксесс такой тупой, что не умеет в foreign key. Что-то не понял. Можно попа дробнее объяснить? ... | |||
| : 
 Нравится:
     Не нравится:
     | |||
| 06.06.2021, 12:55 |  | ||
| 
Организовать связь записей в одной таблице | |||
|---|---|---|---|
| #18+ Silbermannон мне пишет, что не сможет обеспечить целостность данных Куда уж подробнее?.. Posted via ActualForum NNTP Server 1.5 ... | |||
| : 
 Нравится:
     Не нравится:
     | |||
| 06.06.2021, 13:00 |  | ||
| 
Организовать связь записей в одной таблице | |||
|---|---|---|---|
| #18+ Dimitry Sibiryakov Silbermannон мне пишет, что не сможет обеспечить целостность данных Куда уж подробнее?.. Вроде всегда можно задать целостность и с внешним ключом, если все записи в родительской таблице присутствуют. ... | |||
| : 
 Нравится:
     Не нравится:
     | |||
| 06.06.2021, 14:07 |  | ||
| 
Организовать связь записей в одной таблице | |||
|---|---|---|---|
| #18+ Silbermann Я делаю в access, он мне пишет, что не сможет обеспечить целостность данных Вы бы кусочек БД здесь выложили с двумя внешними ключами. ... | |||
| : 
 Нравится:
     Не нравится:
     | |||
| 06.06.2021, 14:09 |  | ||
| 
Организовать связь записей в одной таблице | |||
|---|---|---|---|
| #18+ Silbermann Сложность в том, что таблица одна. Как сделать m:n для одной таблицы? Silbermann У каждого человека есть множество дружеских и деловых связей из таких же людей из этой же таблицы. Silbermann Я делаю в access, Никак, физически будет еще пару таблиц ... | |||
| : 
 Нравится:
     Не нравится:
     | |||
| 06.06.2021, 15:57 |  | ||
| 
Организовать связь записей в одной таблице | |||
|---|---|---|---|
| #18+ vmag Silbermann Сложность в том, что таблица одна. Как сделать m:n для одной таблицы? Silbermann У каждого человека есть множество дружеских и деловых связей из таких же людей из этой же таблицы. Silbermann Я делаю в access, Никак, физически будет еще пару таблиц Разве еще всего лишь одной не обойтись? ... | |||
| : 
 Нравится:
     Не нравится:
     | |||
| 06.06.2021, 16:15 |  | ||
| 
Организовать связь записей в одной таблице | |||
|---|---|---|---|
| #18+ Silbermann Здравствуйте. Есть таблица Человек. У каждого человека есть множество дружеских и деловых связей из таких же людей из этой же таблицы. Как правильно схематично нарисовать эту связь? Нужны ли дополнительные таблицы и как будет организована связь между ними? Спасибо! Делаю в Access, получаю три таблицы: Люди, Связи, ТипыСвязи. В Люди два поля - face_id (счётчик, ключевое поле) и face_name, В Связи - четыре - Код (счётчик, ключевое поле), Лицо1 (числовое, длинное целое), Лицо2 (числовое, длинное целое), ТипСвязи (числовое, длинное целое В ТипыСвязи - КодСвязи (счётчик, ключевое поле) и Связь (короткий текст) Надеюсь, схема связей прикрепится нормально, и не придётся ничего объяснять. Код SQL-запроса дублирует схему связей между таблицами. SELECT Связи.Код, ТипыСвязи.Связь, Люди.face_name, Люди_1.face_name FROM ТипыСвязи INNER JOIN (Люди INNER JOIN (Люди AS Люди_1 INNER JOIN Связи ON Люди_1.face_id = Связи.Лицо2) ON Люди.face_id = Связи.Лицо1) ON ТипыСвязи.КодСвязи = Связи.ТипСвязи; ... | |||
| : 
 Нравится:
     Не нравится:
     | |||
| 06.06.2021, 16:35 |  | ||
| 
Организовать связь записей в одной таблице | |||
|---|---|---|---|
| #18+ Обращаю внимание, что таблица Люди на схеме и в запросе присутствует в двух экземплярах - отдельно для поля Лицо1 и отдельно для поля Лицо2 таблицы Связи. Собственно, таблица Связи отвечает за отношение многие-ко-многим людей, а ТипыСвязи - для нормализации данных. ... | |||
| : 
 Нравится:
     Не нравится:
     | |||
| 06.06.2021, 16:37 |  | ||
| 
Организовать связь записей в одной таблице | |||
|---|---|---|---|
| #18+ DaniilSeryi, Таблица ТипыСвязи не очень-то и нужна. Если только типов связи будет ну ОЧЕНЬ много. ... | |||
| : 
 Нравится:
     Не нравится:
     | |||
| 06.06.2021, 16:39 |  | ||
| 
Организовать связь записей в одной таблице | |||
|---|---|---|---|
| #18+ ИВП DaniilSeryi, Таблица Тип_Связи не очень-то и нужна. Если только типов связи будет ну ОЧЕНЬ много. Да я и не спорю. Привычка просто нормализовать то, что можно нормализовать. Ну и своим студентам за её отсутствие снял бы балл, если бы задание давал на разработку такой БД. Ну или, наоборот, добавил бы - смотря насколько в предмет углубиться успели. ... | |||
| : 
 Нравится:
     Не нравится:
     | |||
| 06.06.2021, 16:40 |  | ||
| 
Организовать связь записей в одной таблице | |||
|---|---|---|---|
| #18+ В такой схеме есть проблема с "групповой связью", когда связаны более чем два человека, и  со связью без иерархии когда при поиске неважно будет ли лицо искомое первым или вторым. Posted via ActualForum NNTP Server 1.5 ... | |||
| : 
 Нравится:
     Не нравится:
     | |||
| 06.06.2021, 16:46 |  | ||
| 
Организовать связь записей в одной таблице | |||
|---|---|---|---|
| #18+ Dimitry Sibiryakov В такой схеме есть проблема с "групповой связью", когда связаны более чем два человека, и со связью без иерархии когда при поиске неважно будет ли лицо искомое первым или вторым. Групповая связь - это уже добавлять сущности групп придётся, хм? И взаимоотношения групп между собой заодно. А связь без иерархии - по идее, эта проблема решается в запросе поиска добавлением условия OR, нет? ... | |||
| : 
 Нравится:
     Не нравится:
     | |||
| 06.06.2021, 16:56 |  | ||
| 
Организовать связь записей в одной таблице | |||
|---|---|---|---|
| #18+ DaniilSeryi елаю в Access, получаю три таблицы: Люди, Связи, ТипыСвязи. Так для студентов с акцессом будет норм, пока с клиентом болтал, не успел выложить свой нарисованный на скорую руку вариант, который близнец вашему оказался... Несколько дополнений от меня: - Просто таблица Связи без ничего - избыточна, это как Петя+Коля написанное на заборе (ни о чем)... - Тип связи несколько добавляет смысла таблице Связи... - Возможно в ней будут и дополнительные поля типа период (для брака например), документ регламентирующий отношения. ну и т.д. ... | |||
| : 
 Нравится:
     Не нравится:
     | |||
| 06.06.2021, 17:41 |  | ||
|  | 

| start [/forum/topic.php?fid=32&msg=40075835&tid=1539793]: | 0ms | 
| get settings: | 9ms | 
| get forum list: | 12ms | 
| check forum access: | 3ms | 
| check topic access: | 3ms | 
| track hit: | 4043ms | 
| get topic data: | 10ms | 
| get forum data: | 3ms | 
| get page messages: | 55ms | 
| get tp. blocked users: | 1ms | 
| others: | 13ms | 
| total: | 4152ms | 

| 0 / 0 | 
