|
Организовать связь записей в одной таблице
|
|||
---|---|---|---|
#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 |
|
Организовать связь записей в одной таблице
|
|||
---|---|---|---|
#18+
vmag, тогда уж не избыточна, а недостаточна. :-) Ну а периоды и прочее - это уже добавлять по вкусу, необходимости, ТЗ и т.п. ... |
|||
:
Нравится:
Не нравится:
|
|||
06.06.2021, 17:55 |
|
Организовать связь записей в одной таблице
|
|||
---|---|---|---|
#18+
DaniilSeryiА связь без иерархии - по идее, эта проблема решается в запросе поиска добавлением условия OR, нет? Дано: связь типа "одноклассники", в классе 30 человек. Требуется: ввести в базу их связи и для произвольно заданного человека вывести его одноклассников. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
06.06.2021, 18:41 |
|
Организовать связь записей в одной таблице
|
|||
---|---|---|---|
#18+
DaniilSeryi тогда уж не избыточна, а недостаточна. :-) С точки зрения БД - избыточна (имелось ввиду), с точки зрения самой себя - недостаточна (не нужна) ... |
|||
:
Нравится:
Не нравится:
|
|||
06.06.2021, 18:44 |
|
Организовать связь записей в одной таблице
|
|||
---|---|---|---|
#18+
Dimitry Sibiryakov DaniilSeryiА связь без иерархии - по идее, эта проблема решается в запросе поиска добавлением условия OR, нет? Дано: связь типа "одноклассники", в классе 30 человек. Требуется: ввести в базу их связи и для произвольно заданного человека вывести его одноклассников. Не, это уже не связи, это группы. Отдельные таблицы будут - группа и принадлежность к группе. ... |
|||
:
Нравится:
Не нравится:
|
|||
06.06.2021, 18:46 |
|
Организовать связь записей в одной таблице
|
|||
---|---|---|---|
#18+
Dimitry Sibiryakov Дано: связь типа "одноклассники", в классе 30 человек. Требуется: ввести в базу их связи и для произвольно заданного человека вывести его одноклассников. Ну дак это новая сущность Группа с Типом одноклассники, включили кого нужно куда нужно и всё... А остальное останется актуальным - отношения между людьми как были так и останутся, или они есть или их нет и это не зависит люди одноклассники или нет ... |
|||
:
Нравится:
Не нравится:
|
|||
06.06.2021, 18:51 |
|
Организовать связь записей в одной таблице
|
|||
---|---|---|---|
#18+
Короче тут всё ясно, ТС на правильном пути и нефиг сбивать его от туда... ... |
|||
:
Нравится:
Не нравится:
|
|||
06.06.2021, 18:53 |
|
Организовать связь записей в одной таблице
|
|||
---|---|---|---|
#18+
vmagотношения между людьми как были так и останутся, или они есть или их нет То есть, по-вашему, если человек человеку друг, то это одно, а если одноклассник - внезапно совсем другое? Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
06.06.2021, 18:57 |
|
Организовать связь записей в одной таблице
|
|||
---|---|---|---|
#18+
Dimitry Sibiryakov Не, просто аксесс такой тупой, что не умеет в foreign key. Так я не понял - тупой аксесс или нет? Умеет foreign key или нет? Есть целостность данных или нет? ... |
|||
:
Нравится:
Не нравится:
|
|||
06.06.2021, 19:10 |
|
Организовать связь записей в одной таблице
|
|||
---|---|---|---|
#18+
ИВПТак я не понял - тупой аксесс или нет? Умеет foreign key или нет? Есть целостность данных или нет? Я лично ни разу в жизни к нему на пушечный выстрел не подходил. Хочешь понять - пойди и попробуй. Потом расскажешь топикстартеру на чём он облажался. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
06.06.2021, 19:18 |
|
Организовать связь записей в одной таблице
|
|||
---|---|---|---|
#18+
Dimitry Sibiryakov То есть, по-вашему, если человек человеку друг, то это одно, а если одноклассник - внезапно совсем другое? А у вас в школе не было одноклассников, с которыми вы практически не общались? Или не было друзей из других классов и даже школ ? ... |
|||
:
Нравится:
Не нравится:
|
|||
06.06.2021, 19:21 |
|
Организовать связь записей в одной таблице
|
|||
---|---|---|---|
#18+
Dimitry Sibiryakov Я лично ни разу в жизни к нему на пушечный выстрел не подходил. Хочешь понять - пойди и попробуй. Потом расскажешь топикстартеру на чём он облажался. Если не подходил, то на хрена говорить что нет целостности и что "не умеет foreign key"? Двое мемберов попробовали (спасибо им) и показали схему с обеспеченностью целостности и с "умением foreign key" (я и не пробовал, т.к. известно, что умеет). А на чем ТС облажался пока никто не знает, т.к. от него примера его БД нет. Но аксесс здесь ни при чем. ... |
|||
:
Нравится:
Не нравится:
|
|||
06.06.2021, 19:29 |
|
Организовать связь записей в одной таблице
|
|||
---|---|---|---|
#18+
ИВП, Самое забавное, что мы все тут всё схемы рисуем, варианты предлагаем, спорим о разных сущностях, которые может потребоваться добавить в базу, и разных проблемах, связанных с тем или иным вариантом реализации БД, а ТС в ветке со вчерашнего дня не появлялся. :-) ... |
|||
:
Нравится:
Не нравится:
|
|||
06.06.2021, 20:22 |
|
Организовать связь записей в одной таблице
|
|||
---|---|---|---|
#18+
DaniilSeryi, зато полезный обмен мнениями, особенно про добавление или снятие балла за таблицу))) ... |
|||
:
Нравится:
Не нравится:
|
|||
06.06.2021, 20:35 |
|
Организовать связь записей в одной таблице
|
|||
---|---|---|---|
#18+
DaniilSeryi а ТС в ветке со вчерашнего дня не появлялся. :-) Зильберман В воскресение нельзя работать... ... |
|||
:
Нравится:
Не нравится:
|
|||
06.06.2021, 20:55 |
|
Организовать связь записей в одной таблице
|
|||
---|---|---|---|
#18+
vmag DaniilSeryi а ТС в ветке со вчерашнего дня не появлялся. :-) Зильберман В воскресение нельзя работать... А я прочитал как СибирьМан (сибирский мен) ... |
|||
:
Нравится:
Не нравится:
|
|||
06.06.2021, 21:00 |
|
Организовать связь записей в одной таблице
|
|||
---|---|---|---|
#18+
psokolov Установка "Windows ХР мод 2021" на компьютеры новее 2014 года (обновление методики 28-май-2021) шняга... новый софт уже не поддерживает ХР, какие бы там драйвера не стояли... латание бабушкиных трусов... рекламщики эти задолбали... ... |
|||
:
Нравится:
Не нравится:
|
|||
06.06.2021, 21:17 |
|
|
start [/forum/topic.php?all=1&fid=32&tid=1539793]: |
0ms |
get settings: |
11ms |
get forum list: |
14ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
29ms |
get topic data: |
12ms |
get forum data: |
3ms |
get page messages: |
73ms |
get tp. blocked users: |
2ms |
others: | 258ms |
total: | 410ms |
0 / 0 |