Задать вопрос
@Che_boo

Как лучше сделать базу данных?

Планирую разрабатывать сервис с большим количеством пользователей. Сервис представляет собой некую личную бухгалтерию, которая будут вести учет доходных и расходных операций. При этом каждый этот тип операции будет делиться на свои категории (еда, машина, жильё и тд). Все операции должны заноситься в таблицу, с указанием даты, суммы, типа операции, категории операции. Все это хорошо работает, когда пользователь только один. Но, если у нас пользователей становится несколько, то таблица операций раздувается значительных масштабах. В итоге работа с этой таблицей может стать крайне затруднительной, а в последствии и не возможной. Т.к. каждый пользователь будет создавать несколько операций в день. при этом планируется, что количество пользователей будет расти. На сколько будет эффективно, создавать для каждого пользователя отдельную. таблицу операций, с уникальным обозначением и дальнейшим ведением учета операций в этой таблице? Не приведет ли это к большому объему самой БД и не затруднит ли в дальнейшем получение информации из базы?
  • Вопрос задан
  • 206 просмотров
Подписаться 1 Простой 2 комментария
Решения вопроса 1
@tukreb
Прочитайте книжку - "Программирование баз данных SQL. Типичные ошибки и их устранение"
Вам ещё рано проектировать БД, пока не прочтёте, даже не прикасайтесь к БД.
Ответ написан
Пригласить эксперта
Ответы на вопрос 4
@Everything_is_bad
В итоге работа с этой таблицей может стать крайне затруднительной, а в последствии и не возможной.
это ты придумал

На сколько будет эффективно, создавать для каждого пользователя отдельную. таблицу операций, с уникальным обозначением и дальнейшим ведением учета операций в этой таблице?
типичная ошибка новичка.

Короче, у тебя нет опыта, ты подобную базы не способен самостоятельно спроектировать. Начни делать правильно, как написано в книгах, оптимизаций займешься потом, с 99% у тебя не будет столько пользователей, чтобы возникли проблемы.
Ответ написан
Комментировать
GavriKos
@GavriKos
Дополню Everything_is_bad.
Базы данных спокойно переваривают миллионы записей. Вопрос только хранилища самого (всмысле места) и все.
Я бы советовал вам не заморачиваться и сделать сначала "как сделается" - т.е. 1 таблица на всех юзеров. Когда появится "несколько юзеров" и "работа станет крайне затруднительной" - тогда и будете заниматься оптимизацией. При правильно спроектированном интерфейсе доступа к данным это будет не сильно сложно.
Ответ написан
Просто добавь в таблицу колонку, в которой будет храниться автор записи.
Если конечному пользователю действительно будет не удобно - он просто включить фильтр, чтобы ему показывались только его записи.
Ответ написан
Комментировать
ipatiev
@ipatiev
Потомок старинного рода Ипатьевых-Колотитьевых
не затруднит ли в дальнейшем получение информации из базы?

Затруднит. Причём не "в дальнейшем", а вот уже прямо сейчас.
С нормальной таблицей получить данные пользователя и его баланс можно одним простым запросом. А с зоопарком из таблиц надо что-то колупать с именами таблиц.
С нормальной таблицей получить аналитику по финансам в целом можно одним простым запросом. А с зоопарком из таблиц каждый раз придётся собирать запрос вручную в цикле и уродовать свой жесткий диск поскольку сразу БД не сможет получить все данные, а её придётся сначала слить все данные всё равно в одну таблицу, а потом уже по ней искать.
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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