Какую архитектуру бд выбрать для приложения с большим количеством аккаунтов?

Добрый вечер!
Есть web приложение, у него база данных, в котором есть таблица зарегистрированных аккаунтов. К каждому аккаунту привязан свой набор данных- юзеры, задачи, товары, платежи и прочее, около 15 таблиц.
Вопрос относительно архитектуры - в данном случае, будет ли правильно хранить данные, связанные с аккаунтами, в одних и тех же таблицах, или же лучше для каждого аккаунта создавать отдельный набор таблиц в пределах одной базы данных?
Иными словами, что лучше- иметь в одной базе данных 15 таблиц - задачи, товары, платежы и т.п по 100.000 записей в каждой, или иметь 1500 таблиц по 1000 записей в каждой?
Как пример именования таблиц:
_<имя таблицы>
1_users
1_payments
1_products
2_users
2_payments
2_products и т.д.
  • Вопрос задан
  • 212 просмотров
Решения вопроса 5
Immortal_pony
@Immortal_pony Куратор тега MySQL
100000 - это мелочи, плодить таблицы для каждого пользователя не надо.
Ответ написан
Комментировать
inoise
@inoise
Solution Architect, AWS Certified, Serverless
На таком уровне вашего понимания проекта - не плодить таблицы, пользуйтесь индексами
Ответ написан
Комментировать
@latush
> лучше для каждого аккаунта создавать отдельный набор таблиц в пределах одной базы данных?
Вам бы про нормализацию и нормальные формы БД почитать. По всем канонам, то что вы предлагаете - ересь.
А что касается задачи, возможно, вам стоит смотреть в сторону NoSQL-баз
Ответ написан
samodum
@samodum
Какой вопрос - такой и ответ
5НФ - такое не знакомо? Без их знания подходить к проектированию БД категорически запрещено
Ответ написан
AndyKorg
@AndyKorg
Кнопконажиматель и припоерасплавлятель
Плодить таблицы безусловно плохой путь. НФ "наше" все если используется РСУБД.
Но если НФ незнакомо, то можно подумать о будущих отчетах- например о количестве проданных товаров. Собрать по 100500 таблицам будет тяжелее, чем простым select по двум-трем таблицам.
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

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

Похожие вопросы