我正在为汽车经销商创建一个概念数据库模型。我已经和客户谈过了,收集了所有的需求,并认为我的实体关系图都是正确的;但是,我意识到我不知道如何表示我将在下面详细说明的要求。
该经销商提供车辆检查和维修和修理。发生这种情况时,会生成服务票证。一个服务票证属于客户,涉及到车辆,并具有以下要求(这是我无法弄清楚如何在地球上绘制的部分):
描述了我感兴趣的背景:
可能有人请点我在如何构建一个相互关系,以及它如何被保存在数据库中,其中一个给定的方向是正确的ServiceTicket,必须涉及到,至少,一个具体的Service,一个特定的Inspection和/或一个决定Repair,但可能还包含此类实体的多个实例?
我如何表示 aServiceTicket可能包含所有这三种实体类型的零次出现,但必须至少包含其中一种?
这个问题一直困扰着我。最初,我在 aServiceTicket和 3之间定义了一个零对多的基数,但意识到这样的描述并不意味着它必须与三者中的至少一个相关联。我的教科书似乎没有为这张图提供任何答案,我觉得要成为一名优秀的 DBA,我必须知道如何表示这一点。
我有以下与此问题相关的表格:
CREATE TABLE tblTitan(
titanId int IDENTITY (15483,1) PRIMARY KEY,
userId int UNIQUE NOT NULL,
titanName varchar(15) NOT NULL,
titanExperience int DEFAULT 0,
titanLevel int DEFAULT 1,
titanStep int DEFAULT 1,
titanBattleCount int DEFAULT 0,
titanWinCount int DEFAULT 0,
titanLossCount int DEFAULT 0,
titanDateCreated date DEFAULT GetDate(),
titanDateLegend date DEFAULT NULL,
titanNpcFlag bit DEFAULT 0,
titanActiveFlag bit DEFAULT 1,
titanImage varchar(150) DEFAULT 'basicTitan.png',
titanElementType int NOT NULL UNIQUE,
FOREIGN KEY (userId) REFERENCES tblUser (userId),
FOREIGN KEY (titanElementType) REFERENCES tblElement (elementId), …Run Code Online (Sandbox Code Playgroud)