博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
[数据库基础]——编码标准之结构
阅读量:4569 次
发布时间:2019-06-08

本文共 1425 字,大约阅读时间需要 4 分钟。

阅读导航

 

数据库是由若干表构成,表是由数据行构成,数据行由若干列组成。由于数据库这样的结构,这就要求我们在构成数据库表时,需要注意一些问题。现在提出一些注意的问题。

1. 主键

每一个表必须有一个主键列。大多数情况,存在一个命名为ID的列作为主键列

直接创建

1:  CREATE TABLE Products
2:  {
3:  [ID] int NOT NULL PRIMARY KEY,
4:  [Name] varchar(255) NOT NULL
5:  }

添加主键约束

1:  CREATE TABLE Products
2:  {
3:  [ID] int NOT NULL,
4:  [Name] varchar(255) NOT NULL
5:  }
6:  ALTER TABLE Products
7:  ADD CONSTRAINT pk_ProductsID PRIMARY KEY ([ID])

 还存在复合主键的情况,将多个列作为复合主键

直接创建

1  CREATE TABLE Products2 {3 [Name] varchar(255) NOT NULL,4 [CreateTime] datetime NOT NULL,5 [Address] varchar(255) NOT NULL6 CONSTRAINT pk_Products PRIMARY KEY ([Name], [CreateTime])7  }

添加主键约束

1 CREATE TABLE Products2 {3 [Name] varchar(255) NOT NULL,4 [CreateTime] datetime NOT NULL,5 [Address] varchar(255) NOT NULL6 }7 8 ALTER TABLE Products9 ADD CONSTRAINT pk_Products PRIMARY KEY ([Name], [CreateTime])

 

2. 第三范式

不要为了使用第三范式,而损失了数据库性能。有时,非规范化的数据库设计可能会比规范化的数据库设计性能更好。

第三范式(3NF):如果关系模式R(U,F)中的所有非主属性对任何候选关键字都不存在传递信赖,则称关系R是属于第三范式的

 

3. TEXT、NTEXT、IMAGE类型

不要使用TEXT类型,而使用VARCHAR设置最大长度来代替。

1:  [Name] varchar(MAX) NOT NULL

注:在 Microsoft SQL Server 的未来版本中将删除 ntexttext 和 image 数据类型。 避免在新开发中使用这些数据类型,需考虑修改当前已使用这些数据类型的应用程序改用 nvarchar(max)、varchar(max) 和 varbinary(max)。 

 

4. VARCHAR类型

在VARCHAR类型列中,不要使用NULL作为默认值,最好使用一个空字符串代替。

1:  [Name] varchar(255) DEFAULT ''

 

5. 默认值

数据列最好有默认值,最好不要使用NULL作为任何一个列的默认值。

1:  [Name] varchar(255) DEFAULT '我没有名字'

转载于:https://www.cnblogs.com/BoyceYang/p/3168667.html

你可能感兴趣的文章
Java操作ini文件 ,解决properties文件中无法读取换行及空格
查看>>
个人小软件冲刺02
查看>>
给php安装openssl扩展
查看>>
通过(美国)感恩节晚餐来类比形容云计算[转自infoq]
查看>>
bzoj1004 card
查看>>
Android初始化的时候获取加载的布局的宽高(续)--RelativeLayout的陷阱
查看>>
Centos7安装ActiveMQ5
查看>>
Love To Be Loved By You
查看>>
4-4内置函数
查看>>
dubbo接口测试-查找店铺可领取的劵
查看>>
python字符串操作
查看>>
HTML5的学习--performance获取加载时间的工具
查看>>
POJ 2668
查看>>
windows linux—unix 跨平台通信集成控制系统----文件搜索
查看>>
the lenght of int
查看>>
把windows的bat用好了,也很不错
查看>>
测试:界面测试
查看>>
【题解】仓库的架子
查看>>
winfrom中的控件不安TAB索引顺序切换的原因
查看>>
java实现版本号的比较
查看>>