powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / Необходимые признаки того, что связь 1 к 1
14 сообщений из 14, страница 1 из 1
Необходимые признаки того, что связь 1 к 1
    #38137135
juventine
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Добрый вечер!

Слышал, что на собеседовании в одну уважаемую IT-компанию любят задавать следующий вопрос.. Условие: есть модель БД, известна структура таблиц. Как по этим начальным условиям определить, что две таблицы связаны связью 1 к 1? То есть ( знаю точно, что таких признаков два ), какие должны быть необходимые признаки того, что две таблицы находятся в связи 1 к 1?

Спасибо!
...
Рейтинг: 0 / 0
Необходимые признаки того, что связь 1 к 1
    #38137342
Фотография vadiminfo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
juventine,

ну наличие ограничения 1:1 все же предаполагает наличие ОЦ в РМД в общем случае. Если по струкутре - одинаковые имена колононк в разных таблах, связь можно предполагать (с оглядкой конечно на наклонности проектировщика), то для 1:1 все же нужно прописать, скорее всего, ОЦ. Типа уникальность столбцов внешнего ключа, чтобы не допустить 1:N. Если не допустимо 1:0, то ограничение на значение NOT NULL для тех же столбцов. Одной только структурой, вроде, не допустить нарушение 1:1, скорей всего, не получится. А стало быть и определить только по структуре, если и можно, то если в этой уважаемой фирме есть какие-то стандарты для этого. Напрмер, в именах столбцов они что-то налабывают.
...
Рейтинг: 0 / 0
Необходимые признаки того, что связь 1 к 1
    #38137588
Arhat109
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
vadiminfo,

круто... :)
...
Рейтинг: 0 / 0
Необходимые признаки того, что связь 1 к 1
    #38137599
Кот Матроскин
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
vadiminfojuventine,

ну наличие ограничения 1:1 все же предаполагает наличие ОЦ в РМД в общем случае. Если по струкутре - одинаковые имена колононк в разных таблах, связь можно предполагать (с оглядкой конечно на наклонности проектировщика), то для 1:1 все же нужно прописать, скорее всего, ОЦ. Типа уникальность столбцов внешнего ключа, чтобы не допустить 1:N. Если не допустимо 1:0, то ограничение на значение NOT NULL для тех же столбцов. Одной только структурой, вроде, не допустить нарушение 1:1, скорей всего, не получится.

А ОЦ - это не структура, разве?
...
Рейтинг: 0 / 0
Необходимые признаки того, что связь 1 к 1
    #38137653
Фотография vadiminfo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Кот МатроскинА ОЦ - это не структура, разве?
OЦ (ограничения целостности) - логические правила, которым должны удовлетворять данные.
...
Рейтинг: 0 / 0
Необходимые признаки того, что связь 1 к 1
    #38137673
BJValentine
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Ну, с мастер-таблицей всё понятно сразу, на неё сылается внешний ключ дочерней таблицы, а ссылаться он может только на уникальный ключ, то есть, 1..N (N>=0) уже есть 100%. А если поля внешнего ключа в дочерней таблице являются уникальным ключем (AK, PK), то уже этого достаточно чтобы понять, что связь 1..1 или 1..0.
...
Рейтинг: 0 / 0
Необходимые признаки того, что связь 1 к 1
    #38137702
Naf
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
мне одному кажется, что связи 1 : 1 быть не может
только 1 : 0..1 или 0..1 : 0..1
не?
...
Рейтинг: 0 / 0
Необходимые признаки того, что связь 1 к 1
    #38137717
BJValentine
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Конечно, если ни в дочерней, ни в мастере нет данных, то можно утверждать, что по <b>этим записям</b> связь 0:0. Но речь то идёт о <b>возможных</b> связях <b>таблицы</b>.
...
Рейтинг: 0 / 0
Необходимые признаки того, что связь 1 к 1
    #38137776
Фотография ChA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
1:1 - встречные FK на PK. Проблема только с заполнением подобных таблиц, нельзя сделать вставку записей в 2 разных таблицы одновременно, только по очереди, а это уже нарушение 1:1. Так что или deffered FK, или отключать FK на моменты добавления записей.
...
Рейтинг: 0 / 0
Необходимые признаки того, что связь 1 к 1
    #38137794
Фотография vadiminfo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Nafмне одному кажется, что связи 1 : 1 быть не может
только 1 : 0..1 или 0..1 : 0..1
не?
Ну навязать то, наверное, можно. Вы же можете, скорее всего (Оракл, например, позволяет), взаимные вненшние ключи создать, чтобы не допустить пояление записи в одной не связаннную с другой. Т.е. в принципе может быть навязана. Но возможно, в этом был подвох на собеседовании: должно быть два внешних ключа.
...
Рейтинг: 0 / 0
Необходимые признаки того, что связь 1 к 1
    #38137811
Фотография vadiminfo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Не видел предыднщего, поэтому повторение получилось
...
Рейтинг: 0 / 0
Необходимые признаки того, что связь 1 к 1
    #38137850
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
juventineСлышал, что на собеседовании в одну уважаемую IT-компанию любят задавать следующий вопрос.. Условие: есть модель БД, известна структура таблиц. Как по этим начальным условиям определить, что две таблицы связаны связью 1 к 1?

В обоих таблицах поля PK должны быть одинаковые и кроме этих полей в PK не должно быть других полей. Т.е. у двух таблиц должен полностью совпадать первичный ключ (порядок полей при этом может быть и разным).
...
Рейтинг: 0 / 0
Необходимые признаки того, что связь 1 к 1
    #38137856
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Кстати, если вдруг в схеме (модели БД) поля в первичных ключах таблиц называются по-разному, и нет связи (foreign key), но тем не менее это одно и то же поле, то ты ни в жисть не догадаешся, что это связь 1:1.
...
Рейтинг: 0 / 0
Необходимые признаки того, что связь 1 к 1
    #38137863
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Nafмне одному кажется, что связи 1 : 1 быть не может
только 1 : 0..1 или 0..1 : 0..1
не?

Да, правильно.
Т.е. связь в модели данных может быть и строго 1:1, но в БД она реализуется связью 1:0..1, а дополнительное ограничение, что
во второй таблице тоже должна быть связь реализуется логикой приложения (триггером или процедурой).
Ну, или вообще не проверяется.
...
Рейтинг: 0 / 0
14 сообщений из 14, страница 1 из 1
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / Необходимые признаки того, что связь 1 к 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]