关于客户投诉模块的建表

投诉模块主要以投诉标识 prosecute _id和投诉号 prosecute_no为主,mysql

constraint PK_ PROSE _ CASERPT  primary key (PROSECUT_ID)或者sql

ALTER TABLE PROSE_CASERPT CONSTRAINT PK_ PROSE _ CASERPT PRIMARY KEY ( PROSECUT_ID );数据库

create unique index UNQ_ PROSE _ CASE_CC on PROSE_CASERPT (
PROSECUT _NO ASC
);性能

数据表主键至关于书的页码。spa

索引至关于书的目录,有了目录咱们能够很快的知道这本书的基本内容和结构,数据索引也同样,能够经过它很快查询到想要的结果,而不须要进行全表扫描。 。orm

主键是一种约束,惟一索引是一种索引,二者在本质上是不一样的。索引

主键建立后必定包含一个惟一性索引,惟一性索引并不必定就是主键。引用

惟一性索引列容许空值,而主键列不容许为空值。im

主键列在建立时,已经默认为空值 + 惟一索引了。数据

主键能够被其余表引用为外键,而惟一索引不能。

一个表最多只能建立一个主键,但能够建立多个惟一索引。

主键更适合那些不容易更改的惟一标识,如自动递增列、身份证号等。该模块的 投诉标识 prosecute _id 就属于这种。所以,所选的主键必须遵照建立惟一索引的规则。

通常和业务无关的字段(好比mysql的自增字段)做为主键,而将业务相关的字段做为unique key

好比:身份证号能够肯定一我的的身份,可是不能用来把他做为主键。
假设有一张人员表,还有100张表关联到这张表。假如用身份证作主键,前几年升级身份证,15位变18位,那么你有101个字段须要从新设置,没修改一我的员的身份证,就要附带更新100张表。
而所谓的无关,就是用自增字段或者UUID,或者相似Oracle rowid这样不包含任何业务信息,只表明这条记录在这张表里面位置的信息做为主键。不管业务如何变化,这个字段都不须要作修改(顶多由于业务量变大,修改字段长度,但不须要修改数据自己)。

其实倒不反对业务主键,但只指单一字段作主键,好比不少登录系统,常就用loginName作用户表主键,并且这么作很方便,我以为只要是值惟一并且不改动的 字段就能够作主键,可是不太可能,;

建立表时指定的 PRIMARY KEY 约束列隐式转换为 NOT NULL。

主键是逻辑键,索引是物理键,意思就是主键不实际存在,而索引实际存在在数据库中,主键通常都要建,主要是用来避免一张表中有相同的记录,索引通常能够不建,但若是须要对该表进行查询操做,则最好建,这样能够加快检索的速度。

 

能够为惟一索引增长一个非空约束

ALTER TABLE PROSE_CASERPT UNQ_ PROSE _ CASE_CC NOT NULL;

若是建表的时候 prosecute_no 为 NOT NULL 就不须要建非空约束了。

————————————————————————————————————————————————————————————————————————————————

 

同理

惟一性索引unique index和通常索引normal index最大的差别就是在索引列上增长了一层惟一约束。添加惟一性索引的数据列能够为空,可是只要存在数据值,就必须是惟一的。    联系:(1)Unique Index就是额外添加的惟一性约束。该约束严格的保证索引列的取值惟一性,这在一些数据列上的业务约束实现是很重要的功能。好比一个数据列,不能做为主键,并且容许为空,可是业务上要求惟一特性。这时候使用惟一性索引就是最好的选择。           (2)二者在性能上并没有很大区别。

相关文章
相关标签/搜索