Как создать таблицу в SQL Server, которая хранит несколько значений для одной ячейки?
Предположим, у меня есть таблица для заказов на покупку. Один клиент может купить много продуктов. Мне нужно хранить все эти продукты и соответствующие цены в одной записи, такой как формат счета.
2 ответа
Если вы можете изменить дизайн БД, предпочтите создать другую таблицу с именем PO_products, которая имеет PO_Id в качестве внешнего ключа из таблицы PurchaseOrder. Это было бы более гибким и правильным дизайном для ваших требований.
Если по какой-то причине вам трудно хранить в одной ячейке (что я повторяю, это не очень хороший дизайн), вы можете использовать XMLType и хранить всю информацию о продуктах в виде XML.
Примечание. Помимо плохого дизайна, существует значительная экономия производительности при хранении данных в формате XML.
Это типичный пример отношения nn между клиентом и продуктами.
Допустим, 1 покупатель может иметь от 0 до N товаров, а 1 покупатель может купить от 0 до N покупателей. Вы хотите использовать распределительную таблицу для хранения всех заказов на покупку.
Эта соединительная таблица может содержать идентификатор покупки, идентификатор клиента и идентификатор продукта.