数据库设计
2018-06-17 22:49:02来源:未知 阅读 ()
- 掌握日常数据库建表操作
- 了解表设计的规范
- 表结构设计需要在正式进行开发之前完成
- 根据产品需求将复杂的业务模型抽象出来
- 类似电商类的网站
- 核心业务
- 非核心业务
- 交易相关
- 订单详情,订单
- 商品相关
- 商品类别,商品
- 物流
- 供应商信息
- 理解各个表的依赖关系
- 理解各个表的功能特点(字段之间的约束,索引;字段类型,字段长度)
- 所有表名,字段名全部使用小写字母
- 不同业务,表名使用不同前缀区分
- 生成环境表名字段名要有实际意义
- 单个字段尽量使用字段全名;多个字段名之间使用下划线分隔
- 存储空间(尽量选择能满足应用要求的最小数据类型)
- 前瞻性(尽量使用整型代替字符型)
- 注释,每个字段必须以COMMENT语句给出字段的作用
- 经常访问的大字段(如blob,text)等需要单独放到一张表中,避免降低SQL效率,图片,电影等大文件数据禁止存放数据库
- 新业务统一建议使用utf8mb4字符集(适应苹果手机的imoge表情库)
- 理解用户到底需要什么权限
- 普通用户只有读写权限
- 系统管理员具有super权限
- 权限粒度要做到尽可能的细
- 普通用户不要设置with grant option 属性
- 权限粒度:系统层面>库层面>表层面>字段层面
- 禁止简单密码
- 线上密码要求随机
- 理解个表间依赖关系以及功能特点
- 字段间约束
- 索引的选取
- 字段类型与长度
- 自增主键重要性
- varchar最大长度
- 65535/3=21845
- 实际还要小点
- 前瞻性与注释
- 经常访问的大字段(blob/text)单独存放
- 赋权限
- 权限最小原则
- 普通用户不要设置with grant option 属性
-- -- Table structure for table `tb_account` -- DROP TABLE IF EXISTS `tb_account`; /*!40101 SET @saved_cs_client = @@character_set_client */; /*!40101 SET character_set_client = utf8 */; CREATE TABLE `tb_account` ( `account_id` int(11) NOT NULL AUTO_INCREMENT, `nick_name` varchar(20) DEFAULT NULL, `true_name` varchar(20) DEFAULT NULL, `sex` char(1) DEFAULT NULL, `mail_address` varchar(50) DEFAULT NULL, `phone1` varchar(20) NOT NULL, `phone2` varchar(20) DEFAULT NULL, `password` varchar(30) NOT NULL, `create_time` datetime DEFAULT NULL, `account_state` tinyint(4) DEFAULT NULL, `last_login_time` datetime DEFAULT NULL, `last_login_ip` varchar(20) DEFAULT NULL, PRIMARY KEY (`account_id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; /*!40101 SET character_set_client = @saved_cs_client */; -- -- Table structure for table `tb_goods` -- DROP TABLE IF EXISTS `tb_goods`; /*!40101 SET @saved_cs_client = @@character_set_client */; /*!40101 SET character_set_client = utf8 */; CREATE TABLE `tb_goods` ( `goods_id` bigint(20) NOT NULL AUTO_INCREMENT, `goods_name` varchar(100) NOT NULL, `pic_url` varchar(500) NOT NULL, `store_quantity` int(11) NOT NULL, `goods_note` varchar(800) DEFAULT NULL, `producer` varchar(500) DEFAULT NULL, `category_id` int(11) NOT NULL, PRIMARY KEY (`goods_id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; /*!40101 SET character_set_client = @saved_cs_client */; -- -- Table structure for table `tb_goods_category` -- DROP TABLE IF EXISTS `tb_goods_category`; /*!40101 SET @saved_cs_client = @@character_set_client */; /*!40101 SET character_set_client = utf8 */; CREATE TABLE `tb_goods_category` ( `category_id` int(11) NOT NULL AUTO_INCREMENT, `category_level` smallint(6) NOT NULL, `category_name` varchar(500) DEFAULT NULL, `upper_category_id` int(11) NOT NULL, PRIMARY KEY (`category_id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; /*!40101 SET character_set_client = @saved_cs_client */; -- -- Table structure for table `tb_order` -- DROP TABLE IF EXISTS `tb_order`; /*!40101 SET @saved_cs_client = @@character_set_client */; /*!40101 SET character_set_client = utf8 */; CREATE TABLE `tb_order` ( `order_id` bigint(20) NOT NULL AUTO_INCREMENT, `account_id` int(11) NOT NULL, `create_time` datetime DEFAULT NULL, `order_amount` decimal(12,2) DEFAULT NULL, `order_state` tinyint(4) DEFAULT NULL, `update_time` datetime DEFAULT NULL, `order_ip` varchar(20) DEFAULT NULL, `pay_method` varchar(20) DEFAULT NULL, `user_notes` varchar(500) DEFAULT NULL, PRIMARY KEY (`order_id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; /*!40101 SET character_set_client = @saved_cs_client */; -- -- Table structure for table `tb_order_item` -- DROP TABLE IF EXISTS `tb_order_item`; /*!40101 SET @saved_cs_client = @@character_set_client */; /*!40101 SET character_set_client = utf8 */; CREATE TABLE `tb_order_item` ( `order_item_id` bigint(20) NOT NULL AUTO_INCREMENT, `order_id` bigint(20) NOT NULL, `goods_id` bigint(20) NOT NULL, `goods_quantity` int(11) NOT NULL, `goods_amount` decimal(12,2) DEFAULT NULL, PRIMARY KEY (`order_item_id`), UNIQUE KEY `uk_order_goods` (`order_id`,`goods_id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; /*!40101 SET character_set_client = @saved_cs_client */; /*!40103 SET TIME_ZONE=@OLD_TIME_ZONE */;
标签:
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有
- 了解php工作原理以及常用功能 2019-09-30
- MySQL性能优化的20条经验 2019-09-23
- 商品SKU系统,你如何设计? 2019-09-17
- 一份非常完整的MySQL规范 2019-09-17
- php并发加锁问题分析与设计,可深入学习 2019-08-29
IDC资讯: 主机资讯 注册资讯 托管资讯 vps资讯 网站建设
网站运营: 建站经验 策划盈利 搜索优化 网站推广 免费资源
网络编程: Asp.Net编程 Asp编程 Php编程 Xml编程 Access Mssql Mysql 其它
服务器技术: Web服务器 Ftp服务器 Mail服务器 Dns服务器 安全防护
软件技巧: 其它软件 Word Excel Powerpoint Ghost Vista QQ空间 QQ FlashGet 迅雷
网页制作: FrontPages Dreamweaver Javascript css photoshop fireworks Flash