小组成员:刘楠、罗钰、沈煜、卢小柯、叶宸宇
对于数据库的设计,要在能够实现业务需求的前提下,对表进行一定的拆分,使数据库中的表能够符合范式要求。对于一对多的形式要尽量拆成两个表,防止数据的冗余。比如在我们的项目中,每一个模型会对应于一个项目文件,而我们的项目文件又分为两种,有个人项目文件夹和团队项目文件夹。在不同的文件夹中,对模型的修改权限是相同的。个人可以对自己创建的项目文件夹及其中的模型进行任意的增删改查,而在团队项目文件夹中,不同团队的成员所拥有的权限都是不同的,不一定所有成员都能对项目文件夹及其中的模型进行增删改。此时,如果将所有的模型都不加区分,统一放在一张模型表中,那么对于模型增删改查就会显得混乱,并且模型的属性也会出现冗余(因为团队项目中的模型与个人项目中的模型虽然都是模型,但在细节上的属性并不完全相同)。
对于每一个实体,都会有一个id,作为一个表的主键。在设计id时可以加入一些信息,也有利于后期对表中对象的查找,也使得表的结构更为清晰。对于数据库中表的命名,采用的是英文命名,同时对于团队项目和个人项目,使用前缀team和persol进行区分,项目与模型之间用project和model进行区分,部分表的属性会加上表名作为前缀进行标识,使得属性的修饰对象更清晰,例如个人项目表中项目名属性命名为person_project_name。另外,对于名字,密码等属性的数据类型使用不定长的字符串varchar,因为varchar的占用空间是可变的,更节省空间;id的数据类型为int(在设计id时要确保id的长度在int长度限制之内且int类型可以保证自增长);对于权限等属性设定默认值,可以尽量减少程序编写的负担,对于权限,因为我们对于队员只有只读/可修改两种权限,所以我们采用int类型的0和1进行设置,这样使得数据库内容简单且易懂。另外,对于数据库设计要精细且多次确认,避免后续开发一半时,再修改数据库的属性等,导致重复工作量,还可能会导致遗漏某些细节从而影响整体项目开发。
数据库初步设计后,根据范式依赖和表主键、外键等约束对数据库进行检查,最终经过小组讨论,确定了表及其属性如下图:
我们组使用PowerDesigner来辅助进行数据库的设计,使得数据库在设计时更为可视化,生成模型图如下。之后直接导出数据库,将sql文件放入mysql中生成数据库,在已生成的数据库的基础上进行审核确认,对数据库的一些细节进一步确认。
标签:文件夹,项目,数据库,id,必达,如云,心得,模型,属性 From: https://www.cnblogs.com/ln-daytoy/p/16859767.html