我该如何设计这个Database + Nhibernate

时间:2011-12-13 06:07:54

标签: c# sql nhibernate

我开始认为我只是通过ms sql为我正在处理的项目手动输入我的数据(这是一个原型/概念验证项目)但是在设计数据库后我发现它只是一个痛苦,可能不会在任何时候保存我,所以我将开发一个表格,我可以填写并保存到数据库。

当我考虑手动输入数据时,我设计了我的数据库

产品表有一个国家,国家表可以有很多产品。

我试图确保不存在拼写错误,因为我必须将其连接到现有的国家/地区而不是在产品表中将字段调用国家/地区并将其打开以进行拼写错误。

既然我要通过表格输入,我想知道在这种情况下是否真的有这个单独的表?

我想的是把它放在产品表中,但是在我的C#代码中创建一个名为Country的枚举,其中包含有效的Country列表。因此,这应该可以阻止任何拼写错误,因为我可能会将其作为下拉列表,如果它无法转换为枚举,则会失败。

我认为在这种情况下,这样做更有意义,而不是使用名为Country且具有PK和Name字段的单独表。

我想听听其他人的想法。

1 个答案:

答案 0 :(得分:1)

使用非敏感键(可以是内部枚举或标识列)和显示值的单独表格是最佳设计,原因如下:

1)如果国家/地区名称发生更改(最近发生的事件并非罕见)或已添加,则无需重新编译。

2)如果您的应用程序在不同的国家/地区使用,它们几乎肯定会有其他国家/地区的拼写不同,在这种情况下,更新数据库要比为每个国家/地区生成不同版本的应用程序容易得多英寸