Вчера, работая над проектом, я столкнулся со странными отношениями 1: 1, которые заставили меня задуматься - как лучше всего это реализовать (очевидно, мы сделали это неправильно: D)
Идея состоит в том, что есть два типа сущностей, A и B. Каждый из них может прекрасно существовать самостоятельно, но они также могут иметь связь между ними. Если есть ссылка, то она должна быть ссылкой 1: 1 и работать в обоих направлениях.
Это как бутылка и крышка. Они могут существовать отдельно, но при соединении вместе бутылка будет иметь только одну крышку, и крышка будет прикреплена только к одной (и той же) бутылке.
Как бы вы внедрили эти отношения, учитывая все лучшие практики нормализации, целостности данных и т. Д.?
Добавлено: Почти забыл сказать - у каждого из них более дюжины свойств, поэтому поместить их в одну таблицу с половиной полей, равных NULL, - довольно неудобное решение. Кроме того, ссылка может быть разорвана и воссоздана с другим объектом в любое время.