0

对于 CakePHP 应用程序,我正在考虑遵循 CakePHP 命名约定的数据库表名。然而,很多时候我遇到一个通用表,其中包含的信息本身不是实体,但包含额外的实体信息。此表中的信息旨在重复使用,因此与主实体表分开放置。

例如:我使用的产品有时可能是主产品。在这种情况下,表“产品”链接到表“master_product_information”以获取我不希望出现在“产品”表中的额外信息。

另一个例子:包含多个页面元数据的表。通常我会将表命名为“pages_metadata”,但对于 Cake,这需要是复数形式,并且“pages_metadatas”似乎不正确。所以我再一次选择“pages_metadata_information”。

如何命名不包含实体的表?[entity]_information 是个好东西吗?

我希望听到一些建议。

谢谢。

4

1 回答 1

5

正确的答案 (IMO) 是只使用 CakePHP 约定 - 那样生活将是最简单的,即使你偶尔有尴尬的表名。

在您的情况下,我将命名为“master_product_information”表master_products。它包含有关 master_product 的“信息”这一事实不需要在表名中指定。就像存储有关客户信息的表是“客户”表,而不是“客户信息”表。

对于“pages_metadata_information”,我很确定“元数据”是一个复数术语。我会用一个类似的名字page_metadata,甚至只是metadata。元数据与一个或多个页面相关联的事实很可能不需要在表名中指定。就像“teachers”表不会被称为“students_teachers”一样,即使老师总是与学生相关联。

您的表名有时可能会有点尴尬,但这比打破惯例要容易得多,而且您很快就会习惯它。

于 2013-08-20T00:01:54.653 回答