数据库的字段设计有很多细节性的技巧,下面将过去在开发中体会到经验整理出来,做个备忘。
关于设计大流量网站数据库,会员分表或者分库的设计考虑:
主键不要设为自增型。设置为自增型的后果就是:今后无法分离在不同的mysql数据库服务器上。比如id编号由于是自增的,所以两个数据库中可能会出现用户编号都是10005的情况。
但是,mysql主键会自动设置为自增型。可以用另外一个字段来作为标识符。而不是自增型id号。方法:新增一个字段作为行的标识符。具体设计:一个表做两个字段,一个是id作为主键,自增型,另外一个是uid,作为用户的标识。
程序判断上,是以uid作为判断用户的依据。而不是id主键作为判断依据(程序上的失误,改动比起数据库设计失误改动容易得多。因为你数据已经入库了。在修改起来就比较难了)。
数据库的一点设计心得
1.按照[流程]顺序走一遍 (相关用户进行一次完成的操作流程)
2.先列出所有的属性 (实体(型)、 属性、 联系)
3.判断每一个属性 是属于那一个实体
4.实体与实体之间的联系 [1:1、 1:n、 n:1、 n:n]
5.相关数据表的设计,允许有数据冗余(牺牲空间换取效率),但是一定不能有数据项之间的矛盾 [工程与理论之间的考虑]
6.当有多种方式进行数据处理的时候,应该综合多个方面,进行考虑,选取最适合当前项目的解决方案 [不一定是理论最好的,但却是适合、实用的]
7.备注: 联系的 1:n中, [概念模型]生成[物理模型]的时候, 会把1中的 主键作为,外键放入到n中
总结
以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,谢谢大家对小牛知识库的支持。如果你想了解更多相关内容请查看下面相关链接
本文向大家介绍谈谈iOS中的几种锁,包括了谈谈iOS中的几种锁的使用技巧和注意事项,需要的朋友参考一下 1 前言 近日工作不是太忙,刚好有时间了解一些其他东西,本来打算今天上午去体检,但是看看天气还是明天再去吧,也有很大一个原因:就是周六没有预约上!闲话少说,这里简单对锁来个简单介绍分享。 2 目录 第一部分:什么是锁 第二部分:锁的分类 第三部分:锁的作用 第四部分:iOS中锁的实现 第一部分:
本文向大家介绍简单谈谈Python中的几种常见的数据类型,包括了简单谈谈Python中的几种常见的数据类型的使用技巧和注意事项,需要的朋友参考一下 计算机顾名思义就是可以做数学计算的机器,因此,计算机程序理所当然地可以处理各种数值。但是,计算机能处理的远不止数值,还可以处理文本、图形、音频、视频、网页等各种各样的数据,不同的数据,需要定义不同的数据类型。在Python中,能够直接处理的数据类型有以
本文向大家介绍谈一谈,你了解的 Java设计模式。相关面试题,主要包含被问及谈一谈,你了解的 Java设计模式。时的应答技巧和注意事项,需要的朋友参考一下 考察点:设计模式 所谓设计模式,就是一套被反复使用的代码设计经验的总结(情境中一个问题经过证实的一个解决方案)。使用设计模式是为了可重用代码、让代码更容易被他人理解、保证代码可靠性。设计模式使人们可以更加简单方便的复用成功的设计和体系结构。
本文向大家介绍简单谈谈js的数据类型,包括了简单谈谈js的数据类型的使用技巧和注意事项,需要的朋友参考一下 近期做一些项目的时候发现,自己的js基础还是不够扎实,再看一遍犀牛书,加深自己的理解和印象。所以从这篇文章开始,后面都是关于原生js的一些内容。 这篇文章,我们具体介绍一下js的数据类型其中一种。 一、javaScript(以下简称js)的数据类型分为两类:原始类型和对象类型。js的原始类型
本文向大家介绍谈一谈,如何得到一个数据流中的中位数?相关面试题,主要包含被问及谈一谈,如何得到一个数据流中的中位数?时的应答技巧和注意事项,需要的朋友参考一下 考察点:排序 数据是从一个数据流中读出来的,数据的数目随着时间的变化而增加。如果用一个数据容器来保存从流中读出来的数据,当有新的数据流中读出来时,这些数据就插入到数据容器中。 数组是最简单的容器。如果数组没有排序,可以用 Partition
本文向大家介绍谈谈JavaScript的New关键字,包括了谈谈JavaScript的New关键字的使用技巧和注意事项,需要的朋友参考一下 原型和闭包算是JavaScript中最常见,最难以理解,最容易被当做问题的两个部分,当然还有它们的延伸,如作用域链,继承等等吧,我最近也是各种看,各种翻,记录点自己的心得,写写总会让自己的理解更深一些。(跟标题的关系不大啦,就感慨句,每次总感觉自己懂了,再翻还