Отношение «один к одному» все еще является отношением «мастер-деталь». Одна таблица является владельцем идентификатора, а другая таблица ссылается на него через внешний ключ. Это шоу отношений на фотографиях MySQL Workbench и SQL Developer.
Документация показывает, что я имею право:
Вы ссылаетесь на документацию Oracle для репозитория ATG, который является специализированным инструментом для общего представления данных, но даже там. из SQL видно, что USER_TBL является первичной таблицей и «владеет» столбцом идентификатора, а JOB_TBL является вспомогательной таблицей и ссылается на идентификатор.
CREATE TABLE usr_tbl (
id VARCHAR(32) not null,
nam_col VARCHAR(32) null,
age_col INTEGER null,
primary key(id)
);
CREATE TABLE job_tbl (
id VARCHAR(32) not null references usr_tbl(id),
function VARCHAR(32) null,
title VARCHAR(32) null,
primary key(id)
Другими словами, у нас может быть USER без работы, но у нас не может быть работы без ПОЛЬЗОВАТЕЛЯ. Но ПОЛЬЗОВАТЕЛЬ может иметь только одну РАБОТУ, и одна РАБОТА принадлежит только ОДНОМУ пользователю.
Ваша диаграмма неверна, поскольку она отображает TABLE7 и TABLE8 как одноранговые узлы. Но внешние ключи не работают так. Один стол откладывается на другой. Когда я смотрю на вашу запись, я не вижу, принадлежит ли TABLE8 TABLE7 или TABLE7 принадлежит TABLE8. Тогда как на диаграммах MySQL и Oracle это совершенно ясно. Цель модели данных - прояснить структуру базы данных, а не скрыть ее.
Обратите внимание, что вполне возможно определить две таблицы, которые имеют внешние ключи, которые ссылаются на первичный ключ друг друга. Хитрость заключается в том, чтобы вставить в них данные. Это требует отложить ограничения внешнего ключа. Я рассматриваю отложенные ограничения как красный флаг, признак сломанной модели данных.