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