设计要在N层应用程序中使用的数据库

Sal*_*mar 5 c# database-design design-patterns

我正在使用.NET(C#,SQL Server)开发N层应用程序.我从设计数据库开始,因为我相信从底部开始是一个好主意.现在我需要您建立数据库的建议非常灵活.知道该应用程序旨在构建为一组插件.

该应用程序是许多不同硬件设备(汽车,引擎等)的远程控制应用程序.这是数据库表的一个片段.

  1. 设备表
  2. 人员表
  3. 用户表
  4. 角色表

正如您所看到的,设备表是一个表,用于表示我们正在控制的设备,因为每个设备可能具有比其他设备更多或更少的属性,我希望将每个设备链接到其属性,这些属性可能位于另一个表中,如同优雅尽可能.人员表适用于负责设备的人员,例如:汽车驾驶员(每辆车可能有多个驾驶员),发动机操作员等.

用户是应用程序用户,您可以看到我已将用户和角色分成两个不同的表.

我正在寻找的是一种将设备链接到其属性的方法.另外,在应用程序中,每个设备都是可连接设备的实例.这意味着我可以将名为say:SIM卡的设备连接到名为Vehicle的设备.此外,有关于这个主题的设计模式吗?

在此先感谢,如果我不清楚,请原谅我.

Gro*_*fit 1

取决于您将如何处理您的数据层,此数据库设计可能是一个有争议的问题。如果您要通过代码优先方法使用 EntityFramework,您可以使用该方法创建逻辑实体并从模型生成数据库。

大多数基于 ORM 的解决方案都提供了一些从对象关系创建数据库的方法,但是尽管您可以快速轻松地启动并运行数据库,这将完全满足您的需求,但如果您想开始使用您可能会遇到的模式麻烦,尽管您可以做很多推断来帮助它在幕后按照您想要的方式创建数据库。

如果这是一个绿地项目,并且您不需要容纳任何遗留数据库系统,那么我将暂时停止担心您的数据库,而只需编写逻辑模型并定义它们的关系,并让数据存储问题自行处理。