美文网首页
day91-数据库表格设计

day91-数据库表格设计

作者: barriers | 来源:发表于2019-03-26 20:05 被阅读0次

表的查看:https://www.cnblogs.com/niewd/p/11481030.html
数据库表格设计一般使用PowerDesigner软件进行设计,先生成逻辑模型,最后逻辑模型转换为物理模型,物理模型导出为sql语句,然后用命令行进入mysql,执行. D:\chrome\Sybase\permission.sql语句,将sql文件生成表格,最好在反向迁移至django模型。逻辑模型一般主要设计表格的字段及主外键设置及一对多多对多关系的设计。物理模型主要设计自增,及唯一性等外键约束。命令行主要创建数据库及切换至数据库。将表格反向迁移至django中的model中后,需要重新添加每个表格的一对多及多对多关系。其具体操作如下。

1逻辑模型

先安装PowerDesigner165软件然后打开软件;

1.1表格设计

1.点击左边框中的workspace 然后点击new,在点击logical data model 进入逻辑模型层设计。
2.点击右边的logical diagram中的entity然后再工作区左键点击,然后右键选择attributes进入设计表格的字段。各项参数意义如下。
name为给字段作注释(可以不写),code为字段,data type为类型;mandatory为必须填内容的约束,general中name为表名注释,code为表名。
3.设计好字段后,进入关系设计,关系设计位于右边的logical diagram;其中entity 新建逻辑模型表格,relationship一对多逻辑模型,n-n relatisonship多对多逻辑模型(多对多关系可以随便由一个表格指向另一个表格,而一对多关系只能由主表指向从表)
通过上面几步就完成了逻辑模型的设计,下面进入物理模型层设计

2物理模型

需要先由逻辑模型转物理模型。
在tools中选择generate physical data moodel 然后改为mysql5.0
preview可以查看生成的物理模型的sql语句。

2.1给id加自增操作

双击生成后的物理模型 点击columns, 点击id对应的第一列并双击,然后勾选identify并应用确定

2.2设置唯一约束

加唯一性约束:在物理模型中双击,点击indexs,然后在下面添加唯一性约束的字段,在选择unique选择框;在移动到最左边的编号,然后双击在选择columns,点击带有加号的表格的图标
在弹出的对话框里选择要设置唯一性约束的字段。点击应用和确定即可。

2.3导出物理模型

当我们将约束语句加好后,就需要将物理模型导出为sql文件。
在database中选择generate database,并选择导出位置及文件名,就可以进行导出了。查看sql语句及导出都是在物理模型中进行;转换成sql语句后,布尔类型在sql语句中将会转换成int类型。

2.4逻辑模型与物理模型的切换

逻辑模型与物理模型之间切换find in diagram/databases
当我们需要给表格新增字段,需要在逻辑模型加字段,然后在tools中在更新一次物理模型。

3数据库操作

当导出为sql文件后,我们需要执行sql语句,进入cmd命令框。输入mysql -uroot -p
然后输入密码。
执行语句create database *** default charset utf8;
然后use ;切换至新创建的数据库。
然后执行. D:\chrome\Sybase*
.sql将会将sql语句执行,在数据库中创建表格。
show databases;查看所有数据库,use u17;切换至u17数据库,show tables;查看u17数据库下所有表格。desc user;查看user表格的表格结构,select * from user;查看user表格中的所有信息。

4django中反向迁移

所谓反向迁移,意即将数据库中的表格反向迁移至django中的model中生成对应的class。
先创建好django模型,在settings中配置好,数据库的相关信息,在工程文件的init文件中加入import pymysql;pymysql.install_as_MySQLdb()。新建app后。
在命令框中执行以下语句,将会在对应app的model中生成对应的模型文件

python manage.py inspectdb > app名字/models.py

如果需要使用django中自带的10张表格,需要先运行python manage.py migrate将表格迁移至数据库后,在执行反向迁移语句。
迁移后的表格中的一对多及多对多关系将全部缺失,故需要自己将关系模型全部添加ManyToManyField()及oneToManyField()关系(如下)至class的字段的最后一行。

lessons = models.ManyToManyField(Lession, through='StudentLession')

其中一对多及多对多关系中的through用于指定对应的哪个类。
一对多及多对多中添加数据时。先用类创建实例,在分别给实例的字段添加对象,最后保存实例。

相关文章

  • day91-数据库表格设计

    表的查看:https://www.cnblogs.com/niewd/p/11481030.html数据库表格设计...

  • 02 关联数据的存储选择

    1 关系型数据库缺少联系 关系型数据库设计之初是为了处理纸质表格以及表格化结构,然后在处理“关系(联系)”上做的却...

  • JSP新手上路之—BBS

    设计数据库表 按照需求设计相关的表格,尽可能考虑周全,设计完备。等写完BBS后回头反省,补充该块内容

  • 数据库表格设计原则

    数据三范式 总关系是依次递进 1. 第一范式(1NF)--确保原子性: 列的原子性,不能再拆分其他几列 2. 第二...

  • 3.数据库设计和注册登录页面后台

    1.数据库设计和django链接mysql数据库 1.goods表用来存放商品信息 2.user表格用来存放用户信...

  • 二阶段day19-PyMySQL

    test1-对数据库表格 增 内容 test2-对数据库表格 删 内容 test3-对数据库表格 改 内容 tes...

  • 数据库相关操作

    数据库 数据库规范 规范化是数据库设计的核心思想,规范化涉及在数据库的表格中建立关系,对有关系但是存在于不同表中的...

  • mysql基本操作

    创建数据库、使用数据库、查看表格: 创建表格: 插入数据到表格: 查看数据: 创建索引: 使用索引的好处: 右侧通...

  • 三线表格的制作

    1.全选表格,依次单击【表格工具—设计】—【边框】—【无框线】。 2.全选表格,依次单击【表格工具—设计】—【边框...

  • Scrapy简单笔记(二)

    数据库操作语言--sql 创建数据库表格的sql语句,输入表格名,括号内是表格的列名【随意】及类型【字符串varc...

网友评论

      本文标题:day91-数据库表格设计

      本文链接:https://www.haomeiwen.com/subject/gqwnvqtx.html