SQL
Как в одной записи таблицы хранить несколько полей одного типа (не фиксированное число)?
У меня есть БД. Предметная область - оптовые продажи магазина, а именно их учет. Есть таблица Товар, содержащая наименование позиции, уникальный код, стоимость и кол-во на складе; таблица Заказ, которая используется для хранения информации об оформленных заказах и еще пара таблиц. Я очень долго пытался найти ответ на вопрос: как можно сделать так, чтобы в одной записи таблицы Заказ можно было хранить несколько позиций приобретаемых продуктов? Может есть какие-то специальные типы данных на подобии массивов?
Это очень просто если знать теорию реляционных баз. Один заказ может содержать множество товаров, один товар может быть в множестве заказов. Связь многие-ко-многим. Разрешается таким образом - нужно 3 таблицы, таблица товары, таблица заказы, и связующая таблица товары-заказы, которая состоит из двух полей - id заказа и id товара.
Карелин Александр
да, именно так и надо, просто автор смотрит на нормализацию до 3НФ, а его задача лежит в плоскости отношений между данными...
Некоторые базы поддерживают поля-массивы, но это крайне неудобно.
Если тебе что-то такое понадобилось, создай дополнительную таблицу с нужными тебе данными. Вообще, прежде чем лепить таблички кое-как, почитай что-нибудь умное про реляционную модель - получишь просветление мозга и полное исчезновение подобных вопросов.
Если тебе что-то такое понадобилось, создай дополнительную таблицу с нужными тебе данными. Вообще, прежде чем лепить таблички кое-как, почитай что-нибудь умное про реляционную модель - получишь просветление мозга и полное исчезновение подобных вопросов.
Вадим Смагин
Чтобы получить просветление, нужно иметь, то что просветлять! А то вон он уже удаляет мой ответ, "умник"!
Калмурат Маматов
Jurijus Zaksas, моя БД составлена согласно реляционной модели, все таблицы в 3НФ. Я только не до конца понимаю как именно это можно реализовать.
если количество полей заранее неизвестно, то нужно создавать еще одну таблицу и там хранить список этих полей (групп полей)
Определенные основы удерживают степь-массивы, однако данное весьма некомфортно.
В случае если тебе то что-в таком случае подобное потребовалось, сотвори вспомогательную таблицу вместе с необходимыми тебе сведениями. В целом, в первую очередь нежели вылепливать таблички кое-равно как, без мала то что-нибудь разумное насчет реляционную форма - обретешь прозрение мозга а также абсолютное утрата аналогичных проблем.
В случае если тебе то что-в таком случае подобное потребовалось, сотвори вспомогательную таблицу вместе с необходимыми тебе сведениями. В целом, в первую очередь нежели вылепливать таблички кое-равно как, без мала то что-нибудь разумное насчет реляционную форма - обретешь прозрение мозга а также абсолютное утрата аналогичных проблем.
Если указанные ответы вам не подходят, объясните зачем вам нужно в заказе хранит сразу несколько позиций?
Как вариант. Можно хранить заказы в двух таблицах
1 таблица
1) Код заказа,
2) Дата,
3) Описание
2 таблица
1) Код заказа из таблицы 1
2) Код товара
3) Количество
Как вариант. Можно хранить заказы в двух таблицах
1 таблица
1) Код заказа,
2) Дата,
3) Описание
2 таблица
1) Код заказа из таблицы 1
2) Код товара
3) Количество
Похожие вопросы
- Можно ли связать одно поле таблицы с несколькими полями другой таблицы?
- SQL. Есть таблица а и b как мне поставить ограничение на поле таблицы b, на основании поля таблицы a? пример в описании
- как в PostgreSQL(!) сделать группировку по одному полю но вывести в результат остальные поля из таблицы
- Вопрос по SQL - уникальное поле ID для трёх таблиц (нельзя вставить значения в одну, если оно есть в другой таблице).
- Блин что то не могу найти способ произвести эффективную выборку данных из таблицы БД?
- Как связать две таблицы между собой?
- SQL,БД. Какие данные могут быть в таблице users?
- Postgresql Как правильно наладить связь между таблицами в базк данныъ?
- UPDATE обновить все таблицы.. помогите с запросом??? (вн подробнее)
- PostgreSQL Extensions. С помощью модуля tablefunc получите из таблицы projects базы HR