Имеют ли все из этих таблиц отношение 1-to-1
? Например, будет ли каждая строка пользователя иметь только одну соответствующую строку в user_stats
или user_levels
? Если это так, возможно, имеет смысл объединить их в одну таблицу. Если же отношение не равно 1 to 1
, то, вероятно, не имеет смысла объединять (денормализовать) их.
Наличие их в отдельных таблицах по сравнению с одной таблицей, вероятно, мало повлияет на производительность, если только у вас нет сотен тысяч или миллионов пользовательских записей. Единственная реальная выгода, которую вы получите, - это упрощение запросов путем их объединения.
ETA:
Если ваша озабоченность связана с тем, что слишком много столбцов , подумайте о , что вы обычно используете вместе, и объедините эти , оставив остальные в отдельном таблица (или несколько отдельных таблиц при необходимости).
Если вы посмотрите, как вы используете данные, я предполагаю, что вы обнаружите, что примерно 80% ваших запросов используют 20% этих данных, а оставшиеся 80% данных используются только изредка. Объедините часто используемые 20% в одну таблицу и оставьте 80%, которые вы не часто используете, в отдельных таблицах, и у вас, вероятно, будет хороший компромисс.