I m试图在Im数据库内建立一个等级结构。 在我的特别例子中,我正在跟踪一个联盟的成员是否是教练员或参与者。 我理解等级背后的想法,以及它如何运作,但却没有规划(我们首先提出欧洲复兴开发银行,没有编码)。 现在,如果我试图克服问题,或者仅仅不理解我需要如何把我在复兴共和与民主运动中所做的事情改成我的法典,那我就感到不舒服。
为了提供进一步的背景,客户的规格如下:
某个角色在某个季节在一个小组中扮演角色。 然而,参与者可能将工作队从一个季度改为另一个季度。 对于参与者来说,我们保留了姓名(我们希望根据最后名称进行查询)、出生日期、妇女人数(当参与者改变团队或从一个季节到另一个季节时可以改变)以及父母的移动电话。
每个季度各一个或一个以上科室,但最多3个。 一个小组由一名辅导员组成。 对于一名教师,我们保留姓名(我们根据头和最后名称进行查询)、出生日期、开始辅导的年份和电子邮件。
For the new entities, as applicable, the first, last and middle name components are at most 17 characters long. Phones are stored in the format: (999) 999-9999. Emails are at most 22 characters long. Organize the persons associated with the league in a hierarchy.
我的复兴共和与民主军处理这一问题的部分是:
现行法典是:
CREATE TABLE MEMBER_BK(
ID_BK INT PRIMARY KEY,
FIRST_NAME_BK VARCHAR(17) NOT NULL,
MIDDLE_NAME_BK VARCHAR(17),
LAST_NAME_BK VARCHAR(17) NOT NULL,
POSITION_BK CHAR(1) NOT NULL, # <P, C>, P = Player, C = Coach
CHECK(POSITION_BK = P OR C )
);
CREATE TABLE PLAYER_BK(
MEMBER_ID_BK INT,
MEMBER_POSITION_BK CHAR(1),
JERSEY_NUMBER_BK INT NOT NULL,
PHONE_BK CHAR(14) NOT NULL,
PRIMARY KEY(MEMBER_ID_BK, MEMBER_POSITION_BK),
FOREIGN KEY(MEMBER_ID_BK) REFERENCES MEMBER_BK(ID_BK),
#FOREIGN KEY(MEMBER_POSITION_BK) REFERENCES MEMBER_BK(POSITION_BK),
CHECK(MEMBER_POSITION_BK = P )
);
CREATE TABLE COACH_BK(
MEMBER_ID_BK INT,
MEMBER_POSITION_BK CHAR(1),
START_YEAR_BK YEAR NOT NULL,
EMAIL_BK VARCHAR(22) NOT NULL,
PRIMARY KEY(MEMBER_ID_BK, MEMBER_POSITION_BK),
FOREIGN KEY(MEMBER_ID_BK) REFERENCES MEMBER_BK(ID_BK),
#FOREIGN KEY(MEMBER_POSITION_BK) REFERENCES MEMBER_BK(POSITION_BK),
CHECK(MEMBER_POSITION_BK = C )
);
目前,当我没有发表评论时,我收到一份1822年错误的法典,使我敢于克服这一问题。 将“ID_BK”的派任移至“FK”无错误。 在我寻求答案时,我确实看到,我可能需要编制索引,但这不是我所认为的。