设为首页 加入收藏

TOP

数据库设计-物理设计(二)
2019-09-17 18:39:32 】 浏览:51
Tags:数据库 设计 物理
`id`
int(11) NOT NULL AUTO_INCREMENT COMMENT '主键', `total_price` decimal(10,2) NOT NULL DEFAULT '0.00', `user_id` int(11) NOT NULL DEFAULT '0', PRIMARY KEY (`id`), KEY `idx_user_id` (`user_id`), ) ENGINE=InnoDB DEFAULT CHARSET=utf8;

    3.避免使用触发器

    • 触发器是一个隐藏的存储过程,因为它不需要参数,不需要显示调用,往往在你不知情的情况下已经做了很多操作,无形中增加了系统的复杂性。
    • 涉及到复杂的逻辑的时候,触发器的嵌套是避免不了的,如果再涉及几个存储过程,再加上事务等等,很容易出现死锁现象。
    • 存储过程的致命伤在于移植性,存储过程不能跨库移植,在后期系统升级维护时难度加大。

    4.谨慎使用预留字段

    • 无法准确的知道预留字段的类型。
    • 无法知道预留字段中所存储的内容。
    • 后期维护预留字段的成本高。

      建议:

    1. “按需设计”,在经过详细有效的分析之后,在数据表中只放置必要的字段,而不要留出大量的备用字段。
    2. 如果数量很少,而且信息的性质与原表密切相关,那么就可以直接在原表上动态增加字段,并将相关的数据更新进去
    3. 如果数量较大,或者并非是原表对象至关重要的属性,那么就可以新增一个表,然后通过键值连接起来。

4.反范式化设计。

    • 什么是反范式化?
      • 适当的违反的范式的要求,允许少量的数据冗余,用空间换取时间。
    • 优点:增加查询效率。

  以上仅为本人学习过程中的知识总结,若有错误,还请诸位不吝赐教。

首页 上一页 1 2 下一页 尾页 2/2/2
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
上一篇深入理解乐观锁与悲观锁 下一篇腾讯云centos7.2安装mysql5.7

最新文章

热门文章

Hot 文章

Python

C 语言

C++基础

大数据基础

linux编程基础

C/C++面试题目