дизайн базы данных корзины покупок и порядок размещения заказов в таблицах - PullRequest
0 голосов
/ 25 июня 2011

Я создаю базу данных в SQL Server 2005 для хранения принятых заказов.

таблица [клиенты]: первичным ключом таблицы сведений о клиенте является customer_ID, который будет идентификатором с автоинкрементом

таблица[orders]: содержит 3 столбца, [orderid] (который также является pk), [product_id], [количество]

таблица [linking]: содержит 2 столбца, [customerid] (как внешний ключ),[orderid] (также внешний ключ)

поток заказа: когда клиент выписан, информация о клиенте будет сохранена в таблице [клиенты], в которой будет сгенерирован уникальный идентификатор клиента.

затем, используя этот customer_ID, продукты из корзины будут сохранены в таблице [orders].

Теперь проблема в том, как мне получить auto_generated customer_ID из таблицы [Customers]?Предполагая, что многие пользователи проверяют одновременно?После вставки сведений о клиенте в таблицу [customer] мне нужно использовать customer_ID в таблице [linking] для сопряжения с ордером.

1 Ответ

0 голосов
/ 25 июня 2011

Напишите несколько хранимых процедур SQL, чтобы выполнить эту работу за вас. Вы можете вызвать это из кода вашего веб-приложения, используя ADO.NET.

  1. Call proc CreateCustomer. Создает ваш CustomerID.
  2. Call proc CreateOrderForCust.
CREATE PROC CreateCustomer 
  @Name varchar(100),
  @Address varchar(100)
AS
   DECLARE @CustomerID int; 

   INSERT INTO CUSTOMER([Name],[Addr]) VALUES (@Name, @Addr);

   SELECT @CustomerID = SCOPE_IDENTITY();

   RETURN @CustomerID;

...
CREATE PROC CreateOrderForCust
  @CustomerID int,
  @SKU int,
  @Qty int
AS
   .....
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...