【问题标题】:PHP and ActiveRecord: How to handle multiple table with one controllerPHP 和 ActiveRecord:如何用一个控制器处理多个表
【发布时间】:2012-12-11 06:09:39
【问题描述】:

我正在玩 PHP 的 Active Record(来自 composer/packagist 的 php-activerecord)。

我正在构建一个应用程序,一旦用户使用他的用户名注册一个新表,就会创建一个。

假设有 1000 个用户将注册到我的应用程序,将创建 1000 个表,但所有表都属于同一类型(结构?),我应该使用一个表并将所有内容都放入吗?

如果创建 1000 个选项卡,我需要创建 1000 个模型吗?有没有办法告诉活动记录用一个模型处理所有相同类型的表?

如果我让你感到困惑,请告诉我,我会尽力解释得更好。

谢谢

【问题讨论】:

  • 每个用户一个表?
  • 我知道这听起来很疯狂,但这是我的第一个托管应用程序,也是我第一次遇到这种问题
  • 每个用户一个表是一个糟糕的主意。不要这样做。
  • 是的。为每个用户设置 1 行。

标签: php mysql rails-activerecord


【解决方案1】:

我们可以在一个模型中处理多个表。 将逻辑相关的查询放到同一个模型中是一种很好的做法。 主要问题为什么需要 1000 个表为什么不创建 1000 行?

【讨论】:

  • 好吧,想象一下构建一个待办事项列表应用程序,每个用户每天将插入 10,20...100 个项目,将所有内容放在一个表中将很快创建一个巨大的表。如果用户而不是 1000 是 10.000 或 100.000 等怎么办。mysql 可以在一个表中管理这种大小吗?
  • 根据您指定的需要,最好按照您的建议进行操作。最好在一个模型中完成所有表格。
  • 再举个例子,以 facebook 为例,大量的用户和每个用户在他们的个人页面上键入日常按摩,消息对于所有用户来说都是相同的结构,但会很大,无法放置所有消息一张表中的所有用户,还是我错了?
  • 我明白你的意思。为所有用户创建表,并创建一个包含所有用户的用户 ID 和表名的表。
  • 感谢您的建议,但现在我回到原来的问题,我该怎么做(代码)?我检查了文档,但没有发现任何有用的东西。我现在正在阅读一篇类似的文章,但适用于 Rails 上的活动记录
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多