0

我正在为名为 Project Billing 的产品重新设计数据库。我在想出表名时遇到了麻烦。在旧数据库中,名称非常晦涩(PRB_PROJ_LVL),所以旧没有帮助。数据库很小——大约 10 个表——但会随着时间的推移而增长。

这就是问题所在 -Projects是一个实体(和表格),但这个词也用作形容词。例子

  • Project- 包含项目的表。
  • ProjectTask- 包含项目任务的表格;这是一个孩子Projects
  • ProjectTemplate- 项目模板表,它不是. Projects项目模板只是作为创建一堆ProjectTasks.

那么,我如何证明这ProjectTask是一个孩子,ProjectProjectTemplate不是?一如既往地感谢。

4

1 回答 1

2

架构的内部文档及其预期用途是更好的方法之一。仅依靠命名约定总是会留下解释的可​​能性——显式定义不会这样做。也就是说,我们已经定义了一些旨在用作模型的对象(在您的情况下为模板)。这些模型对象不被生产应用程序使用或直接操作,并且随着时间的推移是可变的,新对象基于修改后的模型。我们尝试应用自我描述性的一种方法是引入模式。由于我们有不同的部门可以使用相同的模型对象,因此我们有一些类似的东西(调整为适用于您的问题而无需过多假设):

[dept_X].[项目]

[dept_X].[project_tasks]

对于模板,应用程序或用户从不直接使用(据说):

[模型].[项目]

[模型].[project_tasks]

作为我们开发人员的编程参考,模式定义脚本包含描述对象关系的文档(就像内部对象通过外键所做的那样,等等)。作为一项附加措施,将为按项目排序的所有新对象生成一个 wiki 文章。在这个新系统(我的入职)之前存在的对象会在它们被修改或时间允许时记录在案,以先到者为准。

于 2012-10-04T15:53:19.183 回答