使用枚举数据库(NHibernate + mysql)是一个好习惯?有什么优点和缺点?它对数据库效率有影响吗?NHibernate和枚举
3
A
回答
2
在数据库中使用枚举(NHibernate + mysql)是一个好习惯吗?
我认为,从程序员的角度来看,如果在适用的地方使用枚举,这绝对有意义。它提供了更多可读代码,并消除了数据库中的“无效”值。
有什么优点和缺点? 它对数据库效率有影响吗?
优点:
- 架空在枚举到数据库类型的转换:从代码
- 数据完整性
缺点
- 可读性。尽管这可能可以忽略不计。没有测试过,但我会认为是这样。
我确定社区其他人可以肯定地添加到上面的列表中,但我会说整体使用枚举是一个好主意,它是有道理的。
0
我觉得从代码的角度来说,枚举肯定有道理。但是,如果您使用NHibernate生成数据库模式,请使用MySQL的Enum Data Type注意它。这会将您的枚举存储为字符串,但强制只输入有效值。从存储的角度来看,这可能是昂贵的,并且在尝试重构时也是如此。枚举数据库类型将为您处理数据库级别的验证,因此任意更新将不那么令人担忧,我更愿意存储数值并依靠应用程序进行验证,因为它可以更轻松地添加或重命名枚举成员。
我不知道这是否是最好的方法(如果您使用流畅的nhibernate,这几乎可以肯定是使用约定),但如果你看at this blog post你可以找到一个IUserType处理映射枚举为整数在MySQL中解决了一些遇到的挑战。
相关问题
- 1. Nhibernate枚举错误
- 2. 使用NHibernate枚举
- 3. NHibernate的MySQL枚举
- 4. NHibernate的枚举映射
- 5. Hibernate/NHibernate中的枚举表
- 6. 根据枚举的枚举限制使用ICriteria的NHibernate查询
- 7. 使用流利NHibernate和NHibernate的地图枚举作为Int
- 8. 爪哇枚举和Objective-C枚举
- 9. Java的枚举和PostgreSQL枚举
- 10. C++和枚举
- 11. ListView和枚举
- 12. FluentNHibernate和枚举
- 13. DataContractJsonSerializer和枚举
- 14. 如何使用NHibernate的枚举工作?
- 15. NHibernate,SQL Server的 - 枚举到int映射
- 16. 如何用NHibernate枚举列名?
- 17. 枚举集合的nHibernate代码映射
- 18. 如何使用NHibernate持久枚举
- 19. 使用NHibernate映射一系列枚举
- 20. NHibernate的QueryOver由枚举标志
- 21. 在NHibernate中映射表枚举
- 22. nhibernate映射枚举对(键值)
- 23. 枚举和常量
- 24. 枚举和继承
- 25. manage.py inspectdb和枚举
- 26. 枚举和注释
- 27. 枚举setter和getter
- 28. 如何在nHibernate中枚举列枚举类型的显示名称
- 29. 带枚举的MySQL枚举
- 30. Java枚举找到枚举