|
|
1
2
The second approach is usually better. 如果需要新的状态类型,只需要更新数据库,而不需要更新应用程序代码中的数据结构。 如果要进行大量插入,则不应每次都查询状态ID,而是将其缓存。 |
|
|
2
0
假设数据库中的日志状态是相当静态的,我会设置应用程序在启动时将它们全部加载到本地缓存中,这样就不必一直加载它们。 如果可能的话,我喜欢第二种方法。除非您在一个很难获得批准的地方工作,手动更改表中的数据以添加更多状态等。 |
|
|
3
0
我会在数据库中定义状态代码,虽然int字段可以,但是char(4)会更好,因为代码是人类可读的,而-you 应该 同时说明说明;
在数据库中使用数字和没有描述的问题是,如果不确定代码是同步的,或者不知道代码是什么,就不能报告出来。把这些都放在一起,从长远来看,会使生活更容易——保持 Common Reuse Principle 铭记在心。 使描述尽可能有用。从内存来看,在MS SQL中,char(4)使用的空间量与int相同,因此您不必使用char来使用额外的空间。 我肯定不会使用foreignkey从外部将代码识别为一个自动递增的数字;如果值不稳定,您将失去代码的完整性。 如果你要将状态代码硬编码到应用程序中,我建议包括一种让人们不必查看源代码就可以访问代码的方法;文档可能会切断它,但很容易失去同步-你想要的是任何人(如管理员/DBA)都可以轻松调用的某种可调用接口(UI、WebService等)。 Attributes 这是一个很好的方法。 对于一般参考(或预构建的实现),我强烈建议查看 MS Enterprise Libraries ,这包括一个日志块,还包括一个数据库响应。 |