|
1956 / 874 / 352
Регистрация: 05.09.2021
Сообщений: 1,387
|
||||||||||||||||
Список значений в поле БД15.12.2022, 10:35. Показов 841. Ответов 8
Метки нет (Все метки)
Всем привет.
С базами данных знаком крайне поверхностно. Возник вопрос (чисто теоретический), как в БД организовывают следующую структуру. Вот максимально упрощенный пример (постараюсь описать на полу-Python, полу-псевдокоде). Есть таблица клиентов со следующей структурой.
productбудет ссылка на id этого продукта из соответствующей таблицы.А если некая "Маша" купила себе список ("Хлеб", "Колбаса"), чтобы сделать бутерброд, как это должно храниться в БД? Если бы это был просто класс, то как у меня описано выше поле products просто хранит список.Как правильно организуют подобную структуру в БД?
0
|
||||||||||||||||
| 15.12.2022, 10:35 | |
|
Ответы с готовыми решениями:
8
текстовое поле и список значений Добавить в поле выбора список значений
|
|
Модератор
|
|
| 15.12.2022, 11:26 | |
|
anton78spb, подходов много, вот два из них:
1) Обычная строка в которой через разделитель записывают элементы. 2) Паковать json, pickle и пихать строковую/байтовую запись. (потом распаковывать)
1
|
|
|
8851 / 4502 / 1864
Регистрация: 27.03.2020
Сообщений: 7,317
|
|
| 15.12.2022, 13:03 | |
|
Скуль?
1
|
|
|
1956 / 874 / 352
Регистрация: 05.09.2021
Сообщений: 1,387
|
||
| 15.12.2022, 13:47 [ТС] | ||
|
Просто хочу для себя понять, как это работает. И как это надо грамотно спроектировать. Для саморазвития решил почитать про SQLAlchemy. Придумал, как мне показалось очень примитивный пример, и сразу столкнулся с вышеописанной проблемой в организации данных.
0
|
||
|
Просто Лис
|
||||||||
| 15.12.2022, 17:13 | ||||||||
Сообщение было отмечено anton78spb как решение
РешениеВот вам псевдокод ![]()
Добавлено через 4 минуты Client id name 1 Лис 2 Маша 3 Трикси Product id name price 1 Хлеб 34.3 2 Крекеры 0.2 3 Колбаса 300.2 Order id date client_id 1 11.12.2022 3 2 11.12.2022 3 3 11.12.2022 2 OrderProduct order_id product_id 3 1 3 3 1 2 2 2
2
|
||||||||
|
1956 / 874 / 352
Регистрация: 05.09.2021
Сообщений: 1,387
|
|||
| 15.12.2022, 17:31 [ТС] | |||
|
Только OrderProduct я назвал SubOrder (ничего лучшего в голову не пришло).
И вопрос у меня остался. Думал, когда выложу этот вариант сюда, спрошу. Но т.к. вы выложили, спрошу сразу. У OrderProduct должен быть свой id Или его PrimaryKey будет являться комбинация order_id + product_id? И вообще он нужен для этой таблицы?
0
|
|||
|
Просто Лис
|
|||
| 15.12.2022, 17:36 | |||
|
Но на практике можно будет обойтись и без дополнительного поля, тогда первичным ключом будет составной ключ (order_id + product_id) - поддерживается не всеми субд/orm либо вообще обойтись без первичного ключа в расшивке.
1
|
|||
|
1956 / 874 / 352
Регистрация: 05.09.2021
Сообщений: 1,387
|
||||||||||||
| 15.12.2022, 17:46 [ТС] | ||||||||||||
ForeignKey, и строки типа:
Да и PrimaryKey тоже там везде прямым образом указывают.
0
|
||||||||||||
|
Просто Лис
|
|||||||
| 15.12.2022, 17:52 | |||||||
0
|
|||||||
| 15.12.2022, 17:52 | |
|
Помогаю со студенческими работами здесь
9
Импорт значений в поле свойства типа СПИСОК
Как связать поле список-(<option><select>) поле text и checkbox Сделать поле выпадающего списка шире чем поле ячейки из которого открывается список Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Оттенки серого
Argus19 18.03.2026
Оттенки серого
Нашёл в интернете 3 прекрасных модуля:
Модуль класса открытия диалога открытия/ сохранения файла на Win32 API;
Модуль класса быстрого перекодирования цветного изображения в оттенки. . .
|
SDL3 для Desktop (MinGW): Рисуем цветные прямоугольники с помощью рисовальщика SDL3 на Си и C++
8Observer8 17.03.2026
Содержание блога
Финальные проекты на Си и на C++:
finish-rectangles-sdl3-c. zip
finish-rectangles-sdl3-cpp. zip
|
Символические и жёсткие ссылки в Linux.
algri14 16.03.2026
Существует два типа ссылок — символические и жёсткие.
Ссылка в Linux — это запись в каталоге, которая может указывать либо на inode «файла-ИСТОЧНИКА», тогда это будет «жёсткая ссылка» (hard link),. . .
|
[Owen Logic] Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора
ФедосеевПавел 15.03.2026
Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора
ВВЕДЕНИЕ
Выполняя задание на управление насосной группой заполнения резервуара,. . .
|
|
делаю науч статью по влиянию грибов на сукцессию
anaschu 13.03.2026
прикрепляю статью
|
SDL3 для Desktop (MinGW): Создаём пустое окно с нуля для 2D-графики на SDL3, Си и C++
8Observer8 10.03.2026
Содержание блога
Финальные проекты на Си и на C++:
hello-sdl3-c. zip
hello-sdl3-cpp. zip
Результат:
|
Установка CMake и MinGW 13.1 для сборки С и C++ приложений из консоли и из Qt Creator в EXE
8Observer8 10.03.2026
Содержание блога
MinGW - это коллекция инструментов для сборки приложений в EXE. CMake - это система сборки приложений. Здесь описаны базовые шаги для старта программирования с помощью CMake и. . .
|
Как дизайн сайта влияет на конверсию: 7 решений, которые реально повышают заявки
Neotwalker 08.03.2026
Многие до сих пор воспринимают дизайн сайта как “красивую оболочку”. На практике всё иначе: дизайн напрямую влияет на то, оставит человек заявку или уйдёт через несколько секунд.
Даже если у вас. . .
|