enter code here
我的家庭作业有些麻烦,我需要了解。
好的我有4张桌子,
1:costumer
2:order
3:orderedproduct
4. product
。
它们由外键链接。
我需要制定一个独特的约束条件,以便客户每天只能下1个独特的订单。如果同一客户想要在同一天订购更多,则必须在现有订单上写明。
TABLES :
负荷消费
CREATE TABLE COSTUMER (COSTUMERNR INT NOT NULL,
NAME VARCHAR(256),
CITY VARCHAR(256),
PRIMARY KEY (COSTUMERNR)) ENGINE=INNODB;
顺序
CREATE TABLE ORDER (ORDERNR INT NOT NULL,
ORDERDATE DATETIME,
PRIMARY KEY (ORDERNR)),
FOREIGN KEY (COSTUMERNR) REFERENCES COSTUMER(COSTUMERNR)
ON DELETE CASCADE) ENGINE=INNODB;
orderedproduct
CREATE TABLE ORDEREDPRODUCT (OPNR INT NOT NULL,
AMOUNT INT,
FOREIGN KEY (ORDERNR) REFERENCES ORDER(ORDERNR),
FOREIGN KEY (PRODUCTCODE) REFERENCES PRODUCT (PRODUCTCODE)
ON DELETE CASCADE,
CHECK (AMOUNT=>0)) ENGINE=INNODB;
产品
CREATE TABLE PRODUCT (PRODUCTCODE INT NOT NULL,
NAME VARCHAR(256),
TYPE VARCHAR(256),
PRICE FLOAT,
STOCK INT,
PRIMARY KEY (PRODUCTCODE),
CHECK (AMOUNT=>0)) ENGINE=INNODB;
答案 0 :(得分:1)
alter table order add unique index(orderdate, COSTUMERNR);
答案 1 :(得分:0)
如果您能够将日期时间列拆分为日期列和时间列,则可以使用简单约束:
CREATE TABLE ORDER (
ORDERNR INT NOT NULL,
ORDERDATE DATE,
ORDERTIME TIME,
...
CONSTRAINT [UniqueOrder] UNIQUE NONCLUSTERED
(
COSTUMERNR, ORDERDATE
)