|
Организовать связь записей в одной таблице
|
|||
---|---|---|---|
#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&tid=1539793]: |
0ms |
get settings: |
11ms |
get forum list: |
15ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
35ms |
get topic data: |
11ms |
get forum data: |
3ms |
get page messages: |
62ms |
get tp. blocked users: |
2ms |
others: | 12ms |
total: | 159ms |
0 / 0 |