请看下面的 DDL:
CREATE TABLE Sport (ID int, Description varchar(50),primary key(ID))
CREATE TABLE Audit (AditID int, PersonID int, SportID int, AuditDate datetime,primary key(id))
CREATE Table Person (ID int not null, Name varchar(50), FavouriteSportID int, PRIMARY KEY (id),
FOREIGN KEY (FavouriteSportID) REFERENCES Sport(Id))
INSERT INTO Sport VALUES (1,'Football')
INSERT INTO Sport VALUES (2,'Basketball')
INSERT INTO Sport VALUES (3,'Squash')
INSERT INTO Person VALUES (1,'Ian',1)
INSERT INTO Audit VALUES (1,1,1,'2012-01-01')
INSERT INTO Audit VALUES (2,1,1,'2012-02-01')
INSERT INTO Audit VALUES (3,1,'2012-03-01')
审计表显示了人们过去最喜欢的运动。
我知道这涉及将最喜欢的运动存储在两个地方,即 Person.FavouriteSportID 和最近的审计记录,即审计记录 ID 3 也表明 Ian 目前最喜欢的运动是壁球(因为它有最近的审计记录)。
我想知道对于这个简单的要求是否有更好的设计。