для каждого нового пользователя она будет персонализирована (то есть будет возможность изменить данные)
как можно такое реализовать? чтобы каждый юзер имел эту таблицу настроенной под себя
мне пришла единственная идея - создавать для каждого нового пользователя новую таблицу по его id, но я не знаю, насколько это оптимально. юзеров может быть и сотни
ну и что? сотня таблиц не проблема
до какого количества это не будет проблемой и будет ли вообще ? забыл упомянуть БД - PostgreSQL
может, тебе монга нужна?
Связь Один ко многим? В стиле, есть три таблицы. Таблица юзеров, таблица " название дня" и таблица, где в столбцах указано " завтрак, обед, ужин" и т.д. назовём последнюю таблица " распорядок дня" Юзер связан через " один ко многим" с таблицей " распорядок дня". А таблица " распорядок дня" связана с таблицей "название дня" через один ко одному. По-сути, таблица "название дня" изначально заполнена, где просто имя дня недели и все. Ну и создавать юзера через скрипт питона, который будет проходить по таблице " название дня" и будет представлять форму для заполнения записи под каждый день в таблице " распорядок дня" с привязкой к новому юзеру. Собственно, принцип " разделяй и властвуй" в действии. Нет, конечно, можно хранить в одной таблице( если не ошибаюсь, то уже какой-то noSQL) , но как мне кажется это так себе вариант. Придется писать всякие скрипты для редактирования таблиц вместо обычных sql запросов. + Расширяемость страдает.
Чем юзеры настолько отличаются друг от друга, что из данные нельзя просто сложить в одну общую таблицу, просто промаркироваа их id пользователя?
Храни в JSON формате ее, не?
Просто ужасная идея. Заведи одну таблицу для пользователей.
типа создать ещё один col где telegram id будет дублироваться под каждый день? ну, тоже годная идея. всё будет лежать в одной таблице
она и так существует. связать просто надо пользователя и его персонализированный график
Зачем? Одна таблица с пользователями, вторая с событиями и связь между ними.
Foreign key
это типо ForeignKey надо создавать? что то я не имел опыта с таким. благодарю за наводку. сейчас поищу
И я советую прочитать про normalisation
Изучить это гораздо проще, чем громоздить таблицы для каждого пользователя.
Это нормально создавать под пользователя, а что если имя одинаковы у двух людей?
Нет, это совершенно не нормально. Тем более, модель базы не должна быть динамической и меняться сама по себе когда ей вздумается
Что вы имеете ввиду под динамический? Я сказал создать таблицу под пользователя отдельно и поиграть с foreign key)
- Структура базы не должна изменяться самим сервисом в процессе его работы. Под пользователя, или одну таблицу для пользователей?
я бы создавал под телеграм id типо table name u{telegram_id}
опять гениальные идеи...
не бейте, я уже понял, что это плохая идея
В зависимости от того что надо делать с этой таблицей. Если ничего кроме показывать - храни в json для пользователя. Если блюда - не просто строчки а тоже храняться в базе, или по ним надо аггрегировать - делай промежуточную таблицу
Обсуждают сегодня