2008-10-29 90 views
5

我希望能挖掘到这里的一些集体的经验,所以什么(如果有的话)实用程序表,或共同领域你始终在你的数据库设计?数据库表/领域应用程式

一个例子是,我总是包括App_Errors表来存储任何未捕获的异常信息,并存储所有的编辑信息的App_Audit表。

我已经在每个数据表上提出了包括RecordCreatedDateRecordLastEditedDate在内的益处,但没有得出关于信息是否真的有用的结论。

为了给问题多一点的方向 - 我目前的工作重点是全球可访问的Web应用程序(认为社交网络)。

Ta!

回答

9

1包含一个版本号,这样应用程序可以很容易地检查架构的版本表。

2所述的表来保存任意变量/值对,例如一个配置文件,但在数据库中。 (你可以把版本号在这里....)

+0

点2的+1。我倾向于称之为“属性”。第1点也是有效的。 – Draemon 2008-12-16 22:49:39

+0

我会补充说,任意var/val表的作用更好,因为类别/ var/val表。 – jmucchiello 2009-01-20 07:27:42

+0

我有一个名为“schema_version”的表。每次数据库升级都会在该表中插入一个包括版本号,说明和系统日期的表。 – 2009-01-20 21:58:23

2

每个表,无论它做什么,总是以“ID”字段开始,诠释。

我还保存一个错误表,其中包括ID,日期时间,不合格方法和过载,和栈跟踪(如果可用)。

有时候,我有一个设置/统计数据表格,但并非总是如此。

6

我经常使用一个审计日志表来跟踪哪些数据已被更改以及由谁。

你会在它如何定期一直是巨大的好处感到惊讶。

在我工作的几乎每个数据模型中出现的其他内容都是状态表上的变体,通常与主实体的状态生命周期有关。

0

具有错误代码,技术信息,用户信息,严重程度和备忘录列的错误消息表。严重性和用户消息用于在发生错误时构建消息对话框。记录错误时,错误代码和技术消息包含在错误日志中(以及客户端的IP,日期,时间等)。

1

对于报告,一个数字表(0到1Mil的整数)和一个静态日期表(30天的价值天)。

0

我倾向于始终有一个表,列出所有可以访问系统的用户。我更喜欢通过为连接池原因为每个人创建一个单独的数据库用户。

则一般上市角色的人可以在系统的表。连接表指示谁可以做什么。对于商业领域中的应用程序特定规则,这种设置通常会变得更加复杂。

审核表是一个很好的主意。我加入了一个可读的专栏,以便非技术人员有机会弄清楚发生了什么,以及存储各种键和重要的值。

0

我觉得这是送花儿给人方便,包括以下字段:

  • 无效(或可见/停产/等)
  • InactiveReason

就使得它很容易为 '软删除'因此数据完整性得到维护,您不会失去宝贵的历史信息。

和Galwegian提到的审计日志表+1。

0

保存用户数据(与您的系统数据相反)的任何表都具有创建日期和上次更新日期。如果有1%的机会,你可能需要知道什么时候发生了什么事情。这将在未来节省很多麻烦。虽然我不喜欢触发器,但使用它们来维护这两个字段是值得的。如果你使用真正的数据库登录,那么created_user和updated_user也是有用的。