есть 3 таблицы: пользователи, категории и транзакции.
Так вот пользователь связан с категориями 1 ко многим, 1 пользователь, много категорий. Категории связаны с транзакциями многие ко многим, мне нужно, чтоб транзакцию можно было отнести ко многим категорияю. Если я свяжу ещё и транзакции с пользователями 1 ко многим, получится круговая зависимость. Это нормально или лучше так не делать?
Мне нужна возможность получить все транзакции конкретного пользователя, получить транзакции по категории, получить все категории пользователя. При этом у каждого пользователя свой набор категорий.
Если не делать связь пользователя с категориями, то как тогда получить категории, в которых нет транзакций?
Если не делать связь пользователя с транзакциями, то как тогда получать все транзакции? Пробегаться по всем категориям, собирать все транзакции и отфильтровывать дубликаты?
Правильный ответ "в транзакции есть ссылка на пользователя и ссылка на категорию". Обосновать затрудняюсь, мне это очевидно. в транзакциях индекс по пользователю+дате, индекс по категории не нужен Чтобы сделать отчет по пользователь + категория сканируем все транзакции пользователя
а как тогда запрашивать транзакции по конкретной категории?
Само по себе бывает и нормально. Но в вашэм случае -- вы там выберите внутри себя -- это "категория" транзакцыи или пользователя. (Остальные неверные детали анализа замнём пока).
а транзакций между двумя юзерами у вас не бывает? перевод от одного к другому, скажем.
пользователю этой же системы? нет. Ну пользователь может создать категорию, переводы друзьям и там отражать транзакции. Привязка к другому пользователь того же приложения не нужна и просто бессмысленна
а если я хочу видеть все свои переводы Васе отдельно от переводов Пете? А если я хочу видеть, больше я перевёл Пете или Петя мне?
В том то и дело, что и того и того. Ну я хз, как иначе.
Вообще, судя по вашым вопросам -- вам сначала хорошо бы прочитать что-нибудь про SQL и порешать базовый туториал либо задачки из учебника на учебной базе. Потом за бизнес-аналитику ужэ браться. Будет хотя бы словарь для рассуждений.
Обсуждают сегодня