ВСТАВЬТЕ значение TotalPrice, рассчитав автоматически по (количеству * цене) из таблицы товаров и таблицы заказов - PullRequest
0 голосов
/ 02 октября 2019
CREATE TABLE Items
(
    ID INT IDENTITY(1,1) PRIMARY KEY,
    Name VARCHAR(50),
    Price FLOAT
)

CREATE TABLE Customers
(
    Id INT IDENTITY(1,1) PRIMARY KEY,
    Name VARCHAR(50),
    [Address] VARCHAR(200),
    Contact VARCHAR(50),
)

CREATE TABLE Orders
(
    Id INT IDENTITY(1,1) PRIMARY KEY,
    CustomerId INT FOREIGN KEY REFERENCES Customers(Id),
    ItemId INT FOREIGN KEY REFERENCES Items(Id),
    Quantity INT,
    TotalPrice FLOAT
)

1 Ответ

0 голосов
/ 02 октября 2019

Как упоминал Тим, вы можете использовать триггер, чтобы сделать эту работу. Это не было бы хорошим общим решением все же. Если это должно произойти в базе данных (может быть, лучше не здесь), вам лучше создать хранимую процедуру и вызвать ее, и позволить ей выполнять работу, которая необходима для других таблиц.

Кроме того, просто хедз-ап, что float - плохой выбор для типа данных, когда вы храните денежные значения. У меня есть подробный пост об этом здесь:

https://blog.greglow.com/2018/01/15/sql-newbie-mistake-1-using-float-instead-decimal/

...