我在努力弄清楚我是否走在正确的轨道上。
resumes
id
user_id
resume_sections
id
name
desc部分是我们通常在简历、经验、技能、教育等方面找到的部分。
感谢先进的!
发布于 2015-08-19 13:36:35
你走在正确的轨道上了。一些需要考虑的事情:
很可能一个用户可以有多个简历。求职者通常会根据职位空缺量身定做简历,并希望保留所有这些。这意味着您将需要一个用户表。拥有一个user表还为您提供了存储用户属性(如其名称)的位置。
一份简历有很多不同的部分,如经验、工作历史、教育等。这意味着您将希望使您的简历区段表成为区段类型表。
这就提出了逻辑数据库模式设计中的一种常见模式--区分各种事物和事物本身。我建议您添加一个与简历相关的区段表,该表为用户保存简历实例的实际区段。
Oracle提供了一个名为甲骨文数据建模器的免费工具,您可以使用该工具创建表的可视化模型,称为实体关系图,然后从它生成DDL。下面是数据库设计的示例启动模型:

创建一个ERD还可以帮助您开始澄清需求。例如,我创建了区段表的键--简历和序列号。这意味着在简历中可以有两个或更多相同类型的部分。这有道理吗?或者说,每一种简历只能有一种类型的一段,这是否有意义?其次,您需要考虑如何唯一地标识每个表中的一行。例如,我在简历表的键中使用了简历编号。说每一行都将由用户名和简历名称唯一地标识,难道不是很有意义吗?这将防止重复简历的存储。
一旦确定了所有业务规则,就可以使用Oracle Data生成DDL。虽然它不支持mySQL,但仍然可以生成它并获得基本结构,然后纠正mySQL特定的语法。下面是我从这个模型中快速生成的一个示例:
-- Generated by Oracle SQL Developer Data Modeler 4.1.0.873
-- at: 2015-08-19 09:15:38 EDT
-- site: Oracle Database 12c
-- type: Oracle Database 12c
CREATE TABLE "Resume"
(
"Resume_Number" NUMBER (10) NOT NULL ,
"User_Id" NUMBER (10) NOT NULL ,
"Name" VARCHAR2 (100) NOT NULL ,
"Description" VARCHAR2 (1000) NOT NULL
) ;
ALTER TABLE "Resume" ADD CONSTRAINT "Resume_PK" PRIMARY KEY ( "Resume_Number" )
;
CREATE TABLE "Section"
(
"Resume_Number" NUMBER (10) NOT NULL ,
"Section_Sequence_Number" NUMBER (5) NOT NULL ,
"Section_Type_Id" NUMBER (5) NOT NULL ,
"Content" VARCHAR2 (4000) NOT NULL
) ;
ALTER TABLE "Section" ADD CONSTRAINT "Section_PK"
PRIMARY KEY ( "Resume_Number", "Section_Sequence_Number" ) ;
CREATE TABLE "Section_Type"
(
"Section_Type_Id" NUMBER (5) NOT NULL ,
"Name" VARCHAR2 (100) NOT NULL ,
"Description" VARCHAR2 (1000) NOT NULL ,
"Order_Number" NUMBER (5) NOT NULL
) ;
ALTER TABLE "Section_Type" ADD CONSTRAINT "Section_Type_PK"
PRIMARY KEY ( "Section_Type_Id" ) ;
CREATE TABLE "User"
(
"User_Id" NUMBER (10) NOT NULL ,
"Name" VARCHAR2 (100) NOT NULL
) ;
ALTER TABLE "User" ADD CONSTRAINT "User_PK"
PRIMARY KEY ( "User_Id" ) ;
ALTER TABLE "Resume" ADD CONSTRAINT "Resume_User_FK"
FOREIGN KEY ( "User_Id" )
REFERENCES "User" ( "User_Id" ) ;
ALTER TABLE "Section" ADD CONSTRAINT "Section_Resume_FK"
FOREIGN KEY ( "Resume_Number" )
REFERENCES "Resume" ( "Resume_Number" ) ;
ALTER TABLE "Section" ADD CONSTRAINT "Section_Section_Type_FK"
FOREIGN KEY ( "Section_Type_Id" )
REFERENCES "Section_Type" ( "Section_Type_Id" ) ;这给了你很多DDL的开始。数据建模方面的一个很好的参考是David的企业模型模式。我希望这个答案能帮助你完成你的设计!
https://dba.stackexchange.com/questions/95056
复制相似问题