NHibernate初学者指南(4):定义数据库架构
一些基本知识#
本篇文章的目的是创建一个匹配我们模型的数据库,对于其中涉及到的一些数据库的知识就不再赘述。我简单的列一些涉及到的知识吧:
- 如何在SSMS中创建数据库
- 使用可视化和脚本创建数据表
- 数据库中的数据类型
- 关系(一对多,一对一,多对多)
- 约束(非空约束,唯一约束,主键约束,检查约束,外键约束)
- 索引
- 数据库三范式
大概就涉及到这些知识吧,任何一本数据库的书上都有对以上知识的详细讲解。下面我们就一步一步完成数据库的设计。
实战时间#
一、创建空数据库#
1. 打开SSMS,新建一个数据库,名字为:OrderingSystem。
二、创建Products表#
1. 按照下图定义字段,并设置Id为主键。
2. 添加Check约束。在表设计器中,在任意列右击,选择"Check约束",在弹出的对话框中单击"Add",添加一个新的Check约束。修改(名称)为CK_Product_ReorderLevel。在表达式中,添加ReorderLevel>=0。如下图所示:
3. 添加索引。在表设计器中右击,选择"索引/键",在弹出的对话框中单击"Add"添加一个新索引,设置一下属性:a. 修改(名称)为IX_Products_Name。b. 选择Name(ASC)作为被索引的列名。c. 设置“类型”为索引。d. 设置“是唯一的”为是。如下图所示:
三、创建Employees表#
1. 按下图所示定义字段,Id设置为主键。
四、创建Customers表#
1. 按下图所示定义字段,Id设置为主键。
五、创建Orders表#
1. 按下图所示定义字段,Id设置为主键。
六、创建LineItems表#
1. 按下图所示定义字段,Id设置为主键。
七、定义关系#
1. 打开LineItems表的表设计器,右击选择"关系",单击"添加"添加一个新关系,修改(名称)为FK_LineItems_Products,因为我们想定义LineItems和Products表之间的关系。如下图所示:
2. 单击"表和列规范"右边的按钮,在弹出的"表和列"对话框中选择Products作为主键表,Id作为列。选择LineItems表的ProductId作为外键列,如下图所示:
3. 重复1-2步,添加LineItems和Order表之间的外键关系。如下图所示:
4. 打开Order表的表设计器,按照上面的步骤为Orders和Customers表添加外键关系,如下图:
5. 添加Orders和Employees表之间的外键关系,如下图所示:
到此,已经完成了OrderingSystem数据库的定义,数据库的结构如下:
最后再提一个问题。当使用NHibernate或其他ORM框架时,不要使用数据库自动生成ID,因为它有很多缺点,NHibernate使用持久化对象ID(POID)指定主键。
总结#
通过这篇文章我们创建了一个数据库,与我们定义的Model是相匹配的。下一篇我们将领域模型和数据库模型或者架构映射起来。
作者:程序旅途
出处:https://www.cnblogs.com/nianming/archive/2011/11/13/2246966.html
版权:本站使用「CC BY 4.0」创作共享协议,转载请在文章明显位置注明作者及出处。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 地球OL攻略 —— 某应届生求职总结
· 提示词工程——AI应用必不可少的技术
· 字符编码:从基础到乱码解决
· Open-Sora 2.0 重磅开源!