首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >简历/简历和单独章节的数据库模式

简历/简历和单独章节的数据库模式
EN

Database Administration用户
提问于 2015-03-12 10:15:24
回答 1查看 3.4K关注 0票数 3

我在努力弄清楚我是否走在正确的轨道上。

代码语言:javascript
复制
resumes
id
user_id

resume_sections
id
name
desc

部分是我们通常在简历、经验、技能、教育等方面找到的部分。

感谢先进的!

EN

回答 1

Database Administration用户

回答已采纳

发布于 2015-08-19 13:36:35

你走在正确的轨道上了。一些需要考虑的事情:

用户

很可能一个用户可以有多个简历。求职者通常会根据职位空缺量身定做简历,并希望保留所有这些。这意味着您将需要一个用户表。拥有一个user表还为您提供了存储用户属性(如其名称)的位置。

区段

一份简历有很多不同的部分,如经验、工作历史、教育等。这意味着您将希望使您的简历区段表成为区段类型表。

事物类型与事物

这就提出了逻辑数据库模式设计中的一种常见模式--区分各种事物和事物本身。我建议您添加一个与简历相关的区段表,该表为用户保存简历实例的实际区段。

模型示例

Oracle提供了一个名为甲骨文数据建模器的免费工具,您可以使用该工具创建表的可视化模型,称为实体关系图,然后从它生成DDL。下面是数据库设计的示例启动模型:

创建一个ERD还可以帮助您开始澄清需求。例如,我创建了区段表的键--简历和序列号。这意味着在简历中可以有两个或更多相同类型的部分。这有道理吗?或者说,每一种简历只能有一种类型的一段,这是否有意义?其次,您需要考虑如何唯一地标识每个表中的一行。例如,我在简历表的键中使用了简历编号。说每一行都将由用户名和简历名称唯一地标识,难道不是很有意义吗?这将防止重复简历的存储。

DDL产生的

一旦确定了所有业务规则,就可以使用Oracle Data生成DDL。虽然它不支持mySQL,但仍然可以生成它并获得基本结构,然后纠正mySQL特定的语法。下面是我从这个模型中快速生成的一个示例:

代码语言:javascript
复制
-- 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的企业模型模式。我希望这个答案能帮助你完成你的设计!

票数 5
EN
页面原文内容由Database Administration提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://dba.stackexchange.com/questions/95056

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档