[数据库基础]——编码标准之结构
阅读导航
数据库是由若干表构成,表是由数据行构成,数据行由若干列组成。由于数据库这样的结构,这就要求我们在构成数据库表时,需要注意一些问题。现在提出一些注意的问题。
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 Products 2 { 3 [Name] varchar(255) NOT NULL, 4 [CreateTime] datetime NOT NULL, 5 [Address] varchar(255) NOT NULL 6 CONSTRAINT pk_Products PRIMARY KEY ([Name], [CreateTime]) 7 }
添加主键约束
1 CREATE TABLE Products 2 { 3 [Name] varchar(255) NOT NULL, 4 [CreateTime] datetime NOT NULL, 5 [Address] varchar(255) NOT NULL 6 } 7 8 ALTER TABLE Products 9 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 的未来版本中将删除 ntext、text 和 image 数据类型。 避免在新开发中使用这些数据类型,需考虑修改当前已使用这些数据类型的应用程序改用 nvarchar(max)、varchar(max) 和 varbinary(max)。
4. VARCHAR类型
在VARCHAR类型列中,不要使用NULL作为默认值,最好使用一个空字符串代替。
1: [Name] varchar(255) DEFAULT ''
5. 默认值
数据列最好有默认值,最好不要使用NULL作为任何一个列的默认值。
1: [Name] varchar(255) DEFAULT '我没有名字'
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 地球OL攻略 —— 某应届生求职总结
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· .NET周刊【3月第1期 2025-03-02】
· [AI/GPT/综述] AI Agent的设计模式综述