Я работаю с Ruby on Rails, но я думаю, что этот вопрос шире и применим к дизайну базы данных в целом.
В каких случаях целесообразно разделить одну модель на несколько таблиц? Например, предположим, что у меня есть модель User, и количество полей в модели действительно начинает увеличиваться. Например, Пользователь может ввести свой веб-сайт, свой день рождения, свой часовой пояс, свой и т. д. и т. д.
Есть ли какое-либо преимущество или недостаток в разделении модели, например, что, возможно, таблица User содержит только базовую информацию, такую как логин и адрес электронной почты, а затем есть еще одна таблица, которая есть у каждого пользователя, что-то вроде UserInfo, а другая - UserPermissions, и другой, это UserPrivacySettings или что-то в этом роде?
Редактировать: чтобы добавить дополнительный блеск, к большинству полей редко обращаются, за исключением страниц, специфичных для них. Например, такие вещи, как день рождения, доступны только в том случае, если кто-то переходит в профиль пользователя. Кроме того, некоторые поля (к которым редко обращаются) могут быть чрезвычайно большими. Большинство полей могут быть либо пустыми, либо нулевыми.