170 похожих чатов

Ребят, подкиньте идею для более оптимального решения задачи есть такая таблица но

для каждого нового пользователя она будет персонализирована (то есть будет возможность изменить данные)

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

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

23 ответов

12 просмотров

ну и что? сотня таблиц не проблема

ᴀᴄᴀд-👁 Автор вопроса
Vitalius1989
ну и что? сотня таблиц не проблема

до какого количества это не будет проблемой и будет ли вообще ? забыл упомянуть БД - PostgreSQL

может, тебе монга нужна?

Связь Один ко многим? В стиле, есть три таблицы. Таблица юзеров, таблица " название дня" и таблица, где в столбцах указано " завтрак, обед, ужин" и т.д. назовём последнюю таблица " распорядок дня" Юзер связан через " один ко многим" с таблицей " распорядок дня". А таблица " распорядок дня" связана с таблицей "название дня" через один ко одному. По-сути, таблица "название дня" изначально заполнена, где просто имя дня недели и все. Ну и создавать юзера через скрипт питона, который будет проходить по таблице " название дня" и будет представлять форму для заполнения записи под каждый день в таблице " распорядок дня" с привязкой к новому юзеру. Собственно, принцип " разделяй и властвуй" в действии. Нет, конечно, можно хранить в одной таблице( если не ошибаюсь, то уже какой-то noSQL) , но как мне кажется это так себе вариант. Придется писать всякие скрипты для редактирования таблиц вместо обычных sql запросов. + Расширяемость страдает.

Чем юзеры настолько отличаются друг от друга, что из данные нельзя просто сложить в одну общую таблицу, просто промаркироваа их id пользователя?

Храни в JSON формате ее, не?

Просто ужасная идея. Заведи одну таблицу для пользователей.

ᴀᴄᴀд-👁 Автор вопроса
Alexander Morozov
Чем юзеры настолько отличаются друг от друга, что ...

типа создать ещё один col где telegram id будет дублироваться под каждый день? ну, тоже годная идея. всё будет лежать в одной таблице

ᴀᴄᴀд-👁 Автор вопроса
Pavel Glukhov
Просто ужасная идея. Заведи одну таблицу для поль...

она и так существует. связать просто надо пользователя и его персонализированный график

ᴀᴄᴀд 👁
типа создать ещё один col где telegram id будет ду...

Зачем? Одна таблица с пользователями, вторая с событиями и связь между ними.

Foreign key

ᴀᴄᴀд-👁 Автор вопроса
Alexander Morozov
Зачем? Одна таблица с пользователями, вторая с соб...

это типо ForeignKey надо создавать? что то я не имел опыта с таким. благодарю за наводку. сейчас поищу

И я советую прочитать про normalisation

ᴀᴄᴀд 👁
это типо ForeignKey надо создавать? что то я не им...

Изучить это гораздо проще, чем громоздить таблицы для каждого пользователя.

Это нормально создавать под пользователя, а что если имя одинаковы у двух людей?

Daiso
Это нормально создавать под пользователя, а что ес...

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

Pavel Glukhov
Нет, это совершенно не нормально. Тем более, модел...

Что вы имеете ввиду под динамический? Я сказал создать таблицу под пользователя отдельно и поиграть с foreign key)

Daiso
Что вы имеете ввиду под динамический? Я сказал со...

- Структура базы не должна изменяться самим сервисом в процессе его работы. Под пользователя, или одну таблицу для пользователей?

ᴀᴄᴀд-👁 Автор вопроса
Daiso
Это нормально создавать под пользователя, а что ес...

я бы создавал под телеграм id типо table name u{telegram_id}

ᴀᴄᴀд-👁 Автор вопроса
ZeN
опять гениальные идеи...

не бейте, я уже понял, что это плохая идея

В зависимости от того что надо делать с этой таблицей. Если ничего кроме показывать - храни в json для пользователя. Если блюда - не просто строчки а тоже храняться в базе, или по ним надо аггрегировать - делай промежуточную таблицу

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

Обсуждают сегодня

$params = [ 'formid' => 'feedbackForm', 'formTpl' => '@CODE: <form class="form-validate" data-id="ajax_form"> <fieldset class="margin-bottom-md"> ...
Pathologic
1
И ещё вопрос: можно ли типа как на дос как-то запариться и с помощью прерываний выводить текст, вместо функции printf ?
НѣкъиⰘижєжєиꙁъвьсєсвѣтьноѣсѣтиѥсть•
34
Ладно, ещё тупого спрошу. Код должен банально вывести значение регистра на консоль, на деле же не выводя ничего, просто оставляя нерабочую консоль (открыта, ничего не написан...
НѣкъиⰘижєжєиꙁъвьсєсвѣтьноѣсѣтиѥсть•
25
здравствуйте. пытаюсь проверить, содержится ли в десятичном представлении инта некоторая цифра. совершаю: strstr(x, "5") != NULL) получаю ошибку с фото (заведомо неработающий ...
Катя Шевчук🪇
18
Что там вообще с кроссплатформенностью?
🄼🄰🄺🅉🄰🄸
23
Ребята. Этот вопрос мучает меня уже 13 - 15 лет. Почему при валидации в ФормЛистере у поля phone поведение странноватое и отличается от других? А именно, вот набор правил д...
Андрей [aharito] Харитонов
1
Доброй ночи. Вопрос знатокам. Имеется некая таблица, результат которой выведен в DBGrid на форме. И есть форма, с помощью которой можно как добавить запись, так и отредактиров...
Евгений
28
{ char buff = *start; *start = *end; *end = buff; } Из-за этой строчки? Что каждый символ через перем бафф? Как вариант использовать другие со...
Wenks
12
а всё почему? потому что ассемблер в отличии от яву порождает множество пагубных привычек, среди которых например можно отметить использование глобальных переменных для всего ...
Mixail Frolov
35
Кстати, а я вот тут подумал. Допустим, у нас имеется цикл который выполняет огромное количество итераций, но мы хотим, чтобы какие-то действия исполнилось только один раз. В Я...
The Bird of Hermes
23
Карта сайта