gpt4 book ai didi

nhibernate - 数据库和 O/RM 中的枚举

转载 作者:行者123 更新时间:2023-12-04 07:04:47 25 4
gpt4 key购买 nike

假设我想要表中的条目 Regions有一个类型,例如一个城市、一个国家等。假设我将使用 O/RM(在我的情况下为 NHibernate),存储这种类型的公认方式是什么?我看到两个选项:

  • 在 C# 业务层中有一个枚举类型,并将类型存储为 tinyint在表中。
  • 有查表RegionTypes使用类型标识符(字符串或整数)并在 Regions 中引用它们 table 。

  • 从数据库的角度来看,第二种方法似乎更合理,因为我有外键约束,而且我可以有关于区域类型的额外数据,例如城市是国家/地区的子类型(由于我使用的是 SQL Server 2008 空间特征,我实际上需要此信息进行空间操作)。但是,从 C# 的角度来看,我基本上必须有一个实体 RegionType并在每次我想将它分配给一个区域时从数据库中加载它(据我所知,如果我将它存储在查找表中,NHibernate 不允许我将该类型设为枚举)。这对于这么简单的任务来说有点乏味,因为知道区域类型基本上是固定的,不太可能改变。

    其他类型呢,比如 DayOfWeek哪些不太可能改变或有额外的属性,他们应该有他们的查找表和实体吗?

    最佳答案

    一般规则是使用 枚举 s 如果您确定这组值永远不会改变 来自用户 .否则最好使用查找表。

    关于nhibernate - 数据库和 O/RM 中的枚举,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1278835/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com