我希望在这里获得一些集体经验,所以您在数据库设计中总是包含哪些(如果有的话)实用程序表或公共字段?
一个例子是我总是包含一个App_Errors
表来存储任何未捕获的异常信息,以及一个存储所有编辑信息的App_Audit
表。
我(在我看来)提出了在每个数据表中包含RecordCreatedDate
和RecordLastEditedDate
的好处,但没有得出关于信息是否真的有用的任何结论
为问题提供更多方向 - 我目前关注的是全球可访问的Web应用程序(想想社交网络)。
的Ta!
答案 0 :(得分:9)
1包含版本号的表,因此应用程序可以轻松检查架构的版本。
2一个表,用于保存任意变量/值对,如配置文件,但在数据库中。 (你可以把版本号放在这里......)
答案 1 :(得分:6)
我经常使用审核日志表来跟踪哪些数据已被更改以及由谁更改。
你会惊讶于它有多大程度上有很大的好处。
我工作的几乎所有数据模型中出现的其他内容都是状态表的变体,通常与主要实体的状态生命周期有关。
答案 2 :(得分:2)
每个表,无论它做什么,总是以“ID”字段int。
开头我还保存了一个Errors表,其中包括ID,日期时间,失败的方法和重载,以及堆栈跟踪(如果可用)。
有时候我有一个设置/统计表,但并非总是如此。
答案 3 :(得分:1)
用于报告,数字表(0到1Mil的整数)和静态日期表(30天的数值)。
答案 4 :(得分:0)
包含错误代码,技术消息,用户消息,严重性和备忘录列的错误消息表。发生错误时,严重性和用户消息用于构建消息对话框。记录错误时,错误代码和技术消息包含在错误日志中(连同客户端的IP,日期,时间等)。
答案 5 :(得分:0)
我倾向于总是有一个表格列出可以访问系统的所有用户。我更喜欢这样做,而不是为了连接池的原因为每个人创建一个单独的数据库用户。
然后通常会有一个表格列出了人们在系统中可以拥有的角色。连接表指示允许谁做什么。对于业务领域中特定于应用程序的规则,此设置通常会变得更加复杂。
审计表是一个非常好的主意。我包含一个人类可读的专栏,以便非技术人员有机会弄清楚发生了什么,以及存储各种键和重要值。
答案 6 :(得分:0)
我发现包含以下字段总是很方便:
让“软删除”项目变得非常简单,因此可以保持数据完整性,并且不会丢失有价值的历史信息。
并且+1为Galwegian提到的审核日志表。
答案 7 :(得分:0)
会员资格表。无价的。
答案 8 :(得分:0)
任何包含用户数据的表(与系统数据相对)都有创建日期和上次更新日期。如果有1%的几率你可能需要知道什么时候发生了什么。这将在未来节省许多麻烦。虽然我不喜欢触发器,但使用它们来维护这两个字段是值得的。如果使用真实的数据库登录,那么created_user和updated_user也很有用。