我有一張冰淇淋店(會客室)的桌子和一間供客廳內不同口味的桌子。另外還有一個用戶表,用戶應該能夠評定風味。數據庫設計(DDL)
客廳和味道之間存在一對多的關係,味道是一個弱的實體。 Flavor和User之間還有一個多對多的關係,然後創建一個名爲Vote的新表。
我的DDL腳本如下所示:
CREATE TABLE parlor (
parlor_id INTEGER AUTO_INCREMENT,
name VARCHAR(255),
street VARCHAR(255),
street_numb INTEGER,
zip INTEGER,
PRIMARY KEY (parlor_id)
);
CREATE TABLE flavour (
name VARCHAR(255),
parlor_id INTEGER,
PRIMARY KEY (name, parlor_id),
FOREIGN KEY (parlor_id) REFERENCES parlor (parlor_id)
);
CREATE TABLE user (
uid INTEGER AUTO_INCREMENT,
username VARCHAR(255) UNIQUE,
password BINARY(64),
PRIMARY KEY (uid)
);
CREATE TABLE vote (
date TIMESTAMP,
ranking INTEGER(5),
flavour VARCHAR(255),
uid INTEGER,
parlor_id INTEGER,
PRIMARY KEY (date, uid, flavour, parlor_id),
FOREIGN KEY (uid) REFERENCES user (uid),
FOREIGN KEY (flavour) REFERENCES flavour (name),
FOREIGN KEY (parlor_id) REFERENCES flavour (parlor_id)
);
我的問題是,我能夠投票選舉的味道,甚至沒有在客廳存在。例如:
INSERT INTO vote (date, ranking, flavour, uid, parlor_id) VALUES ('...', 5, 'Chocolate', 1, 10)
在ID爲10會客,與用戶ID 1倍速率的味道 '巧克力' 用戶與5
但是當我做...
SELECT * FROM flavour WHERE parlor_id=10;
沒有味道'巧克力'
用戶如何與客廳關聯?他們在哪裏買口味?用戶不能從不同的商店購買嗎?來自不同客廳的味道有什麼不同,或者客廳A的巧克力與客廳B的巧克力相同? – TommCatt