什么是好的数据库设计?
一些原则可为数据库设计过程提供指导。第一个原则是,重复信息(也称为冗余数据)很糟糕,因为重复信息会浪费空间,并会增加出错和不一致的可能性。第二个原则是,信息的正确性和完整性非常重要。如果数据库中包含不正确的信息,任何从数据库中提取信息的报表也将包含不正确的信息。因此,基于这些报表所做的任何决策都将提供错误信息。
所以,良好的数据库设计应该是这样的:
将信息划分到基于主题的表中,以减少冗余数据。
向Aess提供根据需要联接表中信息时所需的信息。
可帮助支持和确保信息的准确性和完整性。
可满足数据处理和报表需求。
设计过程
设计过程包括以下步骤:
确定数据库的用途:这可帮助进行其他步骤的准备工作。
查找和组织所需的信息:收集可能希望在数据库中记录的各种信息,如产品名称和订单号。
划分到表中的信息:将信息项划分到主要的实体或主题中,如“产品”或“订单”。每个主题即构成一个表。
关闭信息项目导入的列确定希望在每个表中存储哪些信息。每个项将成为一个字段,并作为列显示在表中。例如,“雇员”表中可能包含“姓氏”和“聘用日期”等字段。
指定为主键:选择每个表的主键。主键是一个用于唯一标识每个行的列。例如,主键可以为“产品ID”或“订单ID”。
设置表关系:查看每个表,并确定各个表中的数据如何彼此关联。根据需要,将字段添加到表中或创建新表,以便清楚地表达这些关系。
优化您的设计:分析设计中是否存在错误。创建表并添加几条示例数据记录。确定是否可以从表中获得期望的结果。根据需要对设计进行调整。
应用规范化规则:应用数据规范化规则,以确定表的结构是否正确。根据需要对表进行调整。
这个系统最终实现的主要功能如下:
员工基本信息部分:主要完成对员工基本信息的添加、修改、删除、查询等管理。
员工档案信息部分:主要完成对员工档案信息的添加、修改、删除、查询等管理。
员工部门信息部分:主要完成对对员工所属部门的添加、修改、删除、查询等管理。
员工工资信息部分:主要完成对员工工资信息的添加、修改、删除、查询等管理。
员工保险信息部分:主要完成对员工保障信息的添加、修改、删除、查询等管理。
员工合同信息部分:主要完成员工与企业签订合同的一系列信息的添加、修改、删除、查询管理。
员工配偶信息(工号,配偶姓名, 出生年月,工作单位,电话)的工号参照员工基本信息的工号。
员工学历信息(工号,员工姓名,学历,毕业学校,专业,毕业时间,外语情况)的工号参照员工基本信息的工号。
企业工作岗位信息(工号,学历,部门,职位)的工号参照员工基本信息的工号,部门参照企业部门信息的部门
员工基本信息与员工配偶信息建立关于工号的父子关系。
员工基本信息与员工学历信息建立关于工号的父子关系。
员工基本信息与企业工作岗位信息建立关于工号的父子关系
。 企业工作岗位信息与员工基本信息建立关于工号的父子关系。
企业工作岗位信息与企业部门信息建立关于部门的父子关系。
采纳吧
A概念设计和逻辑设计
分析:
数据库设计的设计内容包括:需求分析、概念结构设计、逻辑结构设计、物理结构设计、数据库的实施和数据库的运行和维护。
概念设计
对用户要求描述的现实世界(可能是一个工厂、一个商场或者一个学校等),通过对其中诸处的分类、聚集和概括,建立抽象的概念数据模型。这个概念模型应反映现实世界各部门的信息结构、信息流动情况、信息间的互相制约关系以及各部门对信息储存、查询和加工的要求等。
所建立的模型应避开数据库在计算机上的具体实现细节,用一种抽象的形式表示出来。
以扩充的实体—(E-R模型)联系模型方法为例,第一步先明确现实世界各部门所含的各种实体及其属性、实体间的联系以及对信息的制约条件等,从而给出各部门内所用信息的局部描述(在数据库中称为用户的局部视图)。
第二步再将前面得到的多个用户的局部视图集成为一个全局视图,即用户要描述的现实世界的概念数据模型。
逻辑设计
主要工作是将现实世界的概念数据模型设计成数据库的一种逻辑模式,即适应于某种特定数据库管理系统所支持的逻辑数据模式。与此同时,可能还需为各种数据处理应用领域产生相应的逻辑子模式。这一步设计的结果就是所谓“逻辑数据库”。
扩展资料:
数据结构设计形成过程:
需求分析阶段:综合各个用户的应用需求。
概念设计阶段:形成独立于机器特点,独立于各个DBMS产品的概念模式。
逻辑设计阶段:首先将E-R图转换成具体的数据库产品支持的数据模型,如关系模型,形成数据库逻辑模式;然后根据用户处理的要求、安全性的考虑,在基本表的基础上再建立必要的视图(View),形成数据的外模式。
物理设计阶段:根据DBMS特点和处理的需要,进行物理存储安排,建立索引,形成数据库内模式。
参考资料来源:数据库设计-百度百科
个人想法:
首先你要有个人员表
人员表中的字段 、
id name departmentid 职位 权限 。。。。
departmentid就是所属部门,再建立个部门表做关联
职位不必说 就是经理 老总 普通员工 等
权限是个用来设置员工特性的 比如说你要达到的目的
其他某一个具体的员工A(不属于销售部的)
那么这个员工权限这个字段可以设为1 其他为0 当然 你根据实际情况给这个字段取名 不一定叫权限。
然后发布公告 。其实发布公告就是这段信息给那些具有相关特权的人看
那么问题就在于查询这些有‘特权’的人
select id from 员工表 where departmentid= or 职位='经理' or 权限=1;
部门信息表tb_department:
ID 部门编号 自动编号 主键
部门名称de_name 文本
部门员工数de_num 数字
职工表tb_employee:
ID 员工编号 自动编号 主键
员工姓名em_name 文本
员工性别em_sex 文本
部门编号de_id 数字
员工出生日期em_data 日期/时间
员工身份z号em_virify 文本
员工职称em_call 文本
基本工资表tb_pay:
ID 工资编号 自动编号 主键
员工编号em_id 数字
工资结算日期pa_data 日期/时间
工资数pa_num 数字
注意事项:
1、每一个表都要有一个ID自动编号的自动增长列,作为主键。
2、有一些字段的类型,例如货币等,尽量能用文本和数字就用文本和数字。
3、注意表和字段的命名。
4、字段可能不全,自行添加。
5、员工表的部门编号和部门表的部门编号,员工表的员工编号和工资表的员工编号,虽然可以形成外键关系,但是一般不建议用外键关联,否则插入数据的一致性会受影响。
你说的那个选择题,不明白你是什么意思。。。。
以上就是关于网站的数据库如何设计(怎么设计数据库)全部的内容,包括:网站的数据库如何设计(怎么设计数据库)、某公司需要做一个SQL人事管理系统,请做一份数据库的设计、(20) 数据库设计包括两个方面的设计内容,它们是______。等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)