表结构设计
表结构设计工具:PowerDesigner
Power Designer 是一款强大的数据建模工具,可以制作数据流程图、概念数据模型、物理数据模型,还可以为数据仓库制作结构模型等。本文将使用其进行数据表结构的设计,具体操作步骤如下。
大家先自行下载 PowerDesigner。
打开软件后,通过这一系列的操作过程:File -> New Modle -> Model types -> Physical Data Model ->Physical Diagram,新建物理数据模型,然后输入模型名称,并选择相应数据库,如下图所示:
如上图,Model name,我们采用默认的 PhysicalDiagram_1;DBMS,我们选择 MySQL5.0。
然后,点击右侧的 Toolbox 面板下的表格小图标,即可在 PhysicalDiagram_1 视图中创建表,每点一次创建一张表,选择 Toolbox 面板中的第一个小图标可选中表,双击进行编辑,如下图所示。
在下图所示的表格编辑页面中,通过以下几个选题卡可对表格进行各项编辑操作:
- General 选项卡中可输入表的描述及表名;
- Columns 选项卡中添加表的列;
- Indexes 选项卡中可创建索引,键入描述和索引名称后,双击改行或者点击下图中的黄色小图标可添加索引字段;
- Physical Options 选项卡中可添加自增长和增长基数;
- Preview 选项卡中可查看 SQL 语句。
点击下图中的小图标,添加 Identity 列,勾选后可实现主键自增长。
十大表格结构设计
权限控制表
用户表 user、角色表 role、资源表 resource 三个基表,及角色用户中间表 role_user
,角色资源中间表 role_resource
两个中间表,这五个表主要用权限控制。
每个基表和中间表中所包括的字段、数据类型,以及五个表格间的关系如下图所示,其中 pk 代表主键,fk 代表外键。
外键生成方法为:通过点击右侧 Toolbox 面板中小表格图标右侧第二个 Reference 图标,点击需要创建外键的表指向外键来源的表,可生成一个带指向的箭头,双击该箭头可修改 Joins 选项卡中的外键来源。
其余的表格
余下5张表分别是用户详细信息表 user_info
、文章表 user_content
、评论表 comment、点赞表:upvote
、登录日志表:login_log
各个表格的功能如下:
- 用户详细信息表:主要是把常用字段放在 user 表中,不常用字段放在详细信息表中,提高查询效率;
- 文章表:主要包含文章的分类、文章标题、点赞数、评论数等;
- 评论表:主要是文章的评论模块,包含评论者 ID、被评论者 ID、评论内容、点赞等;
- 点赞表:主要是控制用户点赞的频率,每天只允许用户点赞一次等;
- 登录日志表:主要记录用户登录的时间、IP 等。
下面我们看下这十张表结构关系,如下表所示:
新表的创建
导出 SQL 文件
接下来,我们利用 PowerDesigner 将这些表格导出为 SQL 文件,方便之后向数据库中导入数据。
PowerDesigner 中,点击顶部的 Database(注意选中 PhysicalDiagram_1 视图),进行操作: Database -> Generate Database,填写好导出的路径以及 SQL 文件名称,其他默认,然后点击确定。
然后对导出的文件进行简单修改,删除顶部 drop index xxx on xxx
语句,因为一开始表还未创建,这条语句会报错,为了方便,可将顶部的 drop 语句全部删除掉(包括 drop table if exists xxx
)。
创建数据库及导入 SQL
这里我选用了数据库管理工具 Navicate,SQLYog 也可以。
我们首先新建一个数据库,操作过程为:localhost -> 右键 -> 新建数据库。
键入或者勾选:
数据库名:dream_db
字符集:utf8 -- UTF-8 Unicode
排序规则:
utf8_general_ci
创建好数据库后,双击打开,右键表 -> 运行 SQL 文件 -> 选择你 SQL 文件的存储位置 ->点击开始:
运行结束后,右键刷新表就可看见所有表已经创建成功!