Foxtable(狐表)用户栏目专家坐堂 → 请教数据库范式与性能


  共有2022人关注过本帖树形打印复制链接

主题:请教数据库范式与性能

帅哥哟,离线,有人找我吗?
hbhb
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:狐神 帖子:5061 积分:13092 威望:0 精华:0 注册:2014/5/15 21:34:00
请教数据库范式与性能  发帖心情 Post By:2017/5/31 10:00:00 [只看该作者]

大师:请问:
1、狐表有自动主键,在保证满足第一范式的基础上,肯定满足第二范式,那如何保证满足第三范式?
2、是否一定要满足第三范式?
3、请问范式与性能的关系是怎样的?


 回到顶部
帅哥哟,离线,有人找我吗?
有点色
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:13837 积分:69650 威望:0 精华:0 注册:2016/11/1 14:42:00
  发帖心情 Post By:2017/5/31 10:36:00 [只看该作者]

 

自动递增列有什么问题?怎么不满足第三范式了?

 

而且,不一定要满足范式,可以有适当冗余。


 回到顶部
帅哥哟,离线,有人找我吗?
jspta
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:七尾狐 帖子:1732 积分:11266 威望:0 精华:0 注册:2011/12/15 22:06:00
  发帖心情 Post By:2017/5/31 10:55:00 [只看该作者]

第三范式是正常要求,还有第四第五范式。范式越高表越细,容易度越低,维护的难度会变大,因为连接多表效率自然变低,就是所谓时间和空间。

一般中小型企业,数据量几十万到百万这种级别,性能不会是问题,所以不需要担心。

 回到顶部
帅哥哟,离线,有人找我吗?
hbhb
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:狐神 帖子:5061 积分:13092 威望:0 精华:0 注册:2014/5/15 21:34:00
  发帖心情 Post By:2017/5/31 11:13:00 [只看该作者]

我说的是,设计表的时候,如何保证不出现以后的更新异常?也就是说有何办法验证设计的表是否符合第三范式(以后要更新方便)

 回到顶部
帅哥哟,离线,有人找我吗?
有点色
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:13837 积分:69650 威望:0 精华:0 注册:2016/11/1 14:42:00
  发帖心情 Post By:2017/5/31 11:15:00 [只看该作者]

 范式是你设计的时候要注意和考虑的。

 

 你说的更新异常指的是什么?


 回到顶部
帅哥哟,离线,有人找我吗?
jspta
  6楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:七尾狐 帖子:1732 积分:11266 威望:0 精华:0 注册:2011/12/15 22:06:00
  发帖心情 Post By:2017/5/31 13:05:00 [只看该作者]

以下是引用hbhb在2017/5/31 11:13:00的发言:
我说的是,设计表的时候,如何保证不出现以后的更新异常?也就是说有何办法验证设计的表是否符合第三范式(以后要更新方便)
你满足了范式设计就不会出现更新异常,出现更新异常必然没有满足范式要求或范式级别不够。你要做的是如何设计出符合实际需求的范式的数据库。
如何验证?测试新增,修改,删除,没有数据异常就是符合了。


 回到顶部
帅哥哟,离线,有人找我吗?
hbhb
  7楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:狐神 帖子:5061 积分:13092 威望:0 精华:0 注册:2014/5/15 21:34:00
  发帖心情 Post By:2017/5/31 13:32:00 [只看该作者]

为了提高查询速度,某表b的姓名列直接填列属性值,而该列依赖另外一张表a的外键,我导入时,姓名列不转换为表a外键,直接填写姓名。这样根据表b姓名查询时快捷,但表b以后更新了如何办?
请问:导入数据时,姓名列是否必须填列外键值?

 回到顶部
帅哥哟,离线,有人找我吗?
有点色
  8楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:13837 积分:69650 威望:0 精华:0 注册:2016/11/1 14:42:00
  发帖心情 Post By:2017/5/31 14:14:00 [只看该作者]

 如果你数据库里面设置了外键,那么,你就必须先导入外键的表内容,得到外键,再导入本表的内容。

 

 如果没有设置外键,但分了几个表,你同样需要编写代码进行多表的导入。

 

 如果直接用一个表存放,更新的问题,你可以参考跨表更新的方式,同步一下数据就好了。

 

 一个设计好了的项目,数据库是不会轻易改变的。


 回到顶部
帅哥哟,离线,有人找我吗?
hbhb
  9楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:狐神 帖子:5061 积分:13092 威望:0 精华:0 注册:2014/5/15 21:34:00
  发帖心情 Post By:2017/5/31 15:45:00 [只看该作者]

谢谢!比如工资表的录入有两种,见实例,考虑以后有人更改姓名,以及查询速度,两万人,哪种录入方式较好?

 回到顶部
帅哥哟,离线,有人找我吗?
hbhb
  10楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:狐神 帖子:5061 积分:13092 威望:0 精华:0 注册:2014/5/15 21:34:00
  发帖心情 Post By:2017/5/31 15:45:00 [只看该作者]

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:管理项目33.rar


 回到顶部
总数 11 1 2 下一页