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