Как проще хранить информацию?

К примеру, в БД есть таблица с пользователями
У каждого пользователя есть какие-то данные, ничем не ограничиваемые по количеству (они могут занимать две строки в таблице, могут сотню строк, а могут и тысячу)

Как проще хранить эти данные - в одной большой таблице или в множестве маленьких, каждая из которых будет закреплена за отдельным пользователем?
В каком случае запрос будет выполняться быстрее?
И какой случай будет более этичен, с точки зрения программирования?
  • Вопрос задан
  • 233 просмотра
Пригласить эксперта
Ответы на вопрос 2
Множество мелких таблиц под каждого пользователя?
Самый простой (и самый некрасивый) способ - определить необходимый минимум для каждого пользователя, выделить этот минимум в поля таблицы, а остальное хранить в большом текстовом поле с примечаниями (этот способ остался глубоко в 90-х).
Второй способ - сделать отдельную таблицу, в которой данные будут представлены в виде userID, key, value, где key будет кодировать значение некоторого свойства. Этот способ более элегантный, но по скорости выполнения ударит, да.
Еще есть вариант с сериализацией нужных данных в массив вида key:value - и данные можно хранить вместе с пользователями.
Но это все касается реляционных БД. А вообще, синонимом "плавающей" структуры уже давно стали NoSQL-базы. Конкретные СУБД и общие механизмы описаны во множестве статей.
Ответ написан
Комментировать
Melkij
@Melkij
PostgreSQL DBA
В одной партицированной таблице.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы