我应该如何设计这个数据库+ hibernate

本文关键字:数据库 hibernate 我应该 | 更新日期: 2023-09-27 18:17:53

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

当我考虑手动输入数据时,我将我的数据库设计成这样

Product表有一个国家,而一个国家表可以有多个Product。

我试图确保没有打字错误,因为我必须将其连接到现有的国家,而不是仅仅在产品表中有一个字段调用国家,并将其开放给打字错误。

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

我想把它放在产品表中,但在我的c#代码中创建一个名为Country的enum,其中包含有效的国家列表。因此,这应该可以防止任何打字错误,因为我可能会把它作为下拉菜单,如果它不能转换为enum,它将失败。

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

我想听听别人的想法。

我应该如何设计这个数据库+ hibernate

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

1)如果一个国家的名字改变了(这是一个不罕见的事件最近)或被添加,你不需要重新编译。

如果您的应用程序在不同的国家使用,它们几乎肯定会在其他国家有不同的拼写,在这种情况下,更新数据库比为每个销售国家制作不同版本的应用程序要容易得多。