gpt4 book ai didi

mysql - 类似类对象推荐的 MySQL 数据模型

转载 作者:行者123 更新时间:2023-11-29 03:08:45 24 4
gpt4 key购买 nike

我们将创建一个 MySQL 数据库来反射(reflect)以下 PHP 类:

  • 内容
  • 文章扩展内容
  • 帖子扩展内容
  • ...

将有与内容关联的模型,如评论、忽略等。

这里的问题是使用哪种数据模型。

1) 每个模型一张表

2) 一个大型内容表(所有类属性都作为列),以及其他模型的单个表。我相信这叫做单表继承。

3) 一个包含公共(public)字段的大型内容表,或者只有我们通常搜索的字段(索引),加上一个包含其余属性的大型内容数据表。

4) 另一种方式?

我们希望能够查询内容,并获取最近的、基于位置的或以某种方式过滤的内容,而不管它是哪种内容类型(子类)。因此解决方案 1 可能是不可能的。

该系统应该快速且可扩展。解决这个问题的最佳方法是什么?

最佳答案

我写了一篇关于这个主题的博文,您可能会觉得有帮助:http://jasonswett.net/blog/composition-a-better-alternative-to-orm-inheritance/

首先,我建议您将表格命名为 content_item 或其他名称,而不是 content。这样做的原因是我认为表名应该与它所代表的事物的名称相匹配。参见 this other blog post of mine有关详细信息。

因此,您可能有一个名为 content_item 的表、一个名为 article 的表和一个名为 post 的表。 content_item 将包含 titleslug 等列 - 每个内容项将包含的所有内容,无论是帖子、文章还是其他内容.然后 article 将有一个 content_item_id 然后是特定于文章的任何其他内容,但特定于文章的内容。对于每篇文章,您都有一个 content_item 记录,然后是一个附加到该 content_item 记录的 article 记录。

这将使您能够查询 content_item 并获得包含所有内容类型的结果。

我过去实现过这种解决方案并取得了成功。 (我也尝试过不同的方法,但不太喜欢它们。)

关于mysql - 类似类对象推荐的 MySQL 数据模型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11473791/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com