В SQL / MySQL есть ли причины не помещать отношения один-к-одному в одну и ту же таблицу?
Отношения один-к-одному обычно могут храниться в одной и той же таблице. Есть ли причины не хранить их в одной таблице?
4 ответа:
Количество и тип столбцов. Существует ограничение на размер столбцов в таблице. Смотрите здесь . Существует максимум 8 060 байт на строку.
Очень большие таблицы также могут влиять на производительность и могут быть трудны для оптимизации и индексирования.
Это отдельно от хранения данных, которые концептуально отличаются друг от друга. Например, страна и валюта имеют отношение 1 к 1 (показательный пример, я знаю, что это не всегда так). Я бы все равно не стал держать их вместе.
Вы найдете некоторую информацию о том, когда полезно создавать отношения один-к-одному в разделе http://onlamp.com/pub/a/onlamp/2001/03/20/aboutSQL.html
Самое главное-это следующее:
Ключевой показатель возможной потребности ибо отношения один-к-одному - это таблица, содержащая поля, которые являются используется только для определенного подмножества записи в этой таблице.
Я сделал это, чтобы предотвратить блокировку / блокировку, поместил тяжелые столбцы read в одну таблицу, тяжелые столбцы update в другую, сработало как заклинание. Многие крупные жирные транзакции обновления замедляли много чтений.
Отношения один - ноль-или-один являются общими и связаны от необязательного к обязательному-пример приведен в http://onlamp.com/pub/a/onlamp/2001/03/20/aboutSQL.html именно такого рода, а не один к одному. Отношения типа / подтипа могут быть реализованы следующим образом.
Отношения один к одному возникают, когда каждый представляет собой ясную, значимую сущность, которая в другом контексте может находиться в некоторых других отношениях и где незначительное изменение требований может изменить кардинальность отношения. Это произвольно, какие ссылки на которые, так что лучше всего выбрать один, чтобы быть необязательным и преобразовать в один ноль-или-один.