1
我需要存儲計劃日期和數據庫中的日期信息。數據庫需要非常可擴展且高效。我應該刪除Dates
表並將DateTaken
和DatesPlanned
放到不同的數據庫中嗎?我唯一不情願的是有多個表依賴於DateId
。有沒有更好的解決方案,不需要需要重複的表DateId
?如何避免重複表格?
CREATE TABLE Dates
(
DateId INT NOT NULL AUTO_INCREMENT,
ProfileId INT NOT NULL,
PRIMARY KEY (DateId, ProfileId)
);
CREATE TABLE DateTaken
(
DateId INT NOT NULL PRIMARY KEY,
Title VARCHAR(255) NOT NULL,
DateStart DATE NOT NULL,
DateEnd DATE NOT NULL,
Summary VARCHAR(1500),
FOREIGN KEY (DateId) REFERENCES Dates(DateId)
);
CREATE TABLE DatePlanned
(
DateId INT NOT NULL PRIMARY KEY ,
Title VARCHAR(255) NOT NULL,
DateStart DATE NOT NULL,
DateEnd DATE NOT NULL,
Summary VARCHAR(1500),
FOREIGN KEY (DateId) REFERENCES Dates(DateId)
);
CREATE TABLE DateRestaurant
(
RestaurantId INT NOT NULL,
DateId INT NOT NULL,
CheckIn DATE NOT NULL,
CheckOut DATE NOT NULL,
Name VARCHAR(255) NOT NULL,
PRIMARY KEY (DateId, RestaurantId),
FOREIGN KEY (DateId) REFERENCES Dates(DateId)
);
我有多個其他需要'DateId'的表。爲每個添加一個字段是不實際的。我非常喜歡在餐廳桌上添加狀態的想法。 – andre
@andre:查看更新。 –
好主意。然而,我所做的唯一更改是從所有餐館中刪除「DateId」。然後用'RestaurantId'和'DateId'維護一個兩張小桌子。這樣我可以在一個單獨的數據庫餐廳。 – andre