php - 极其简单的表格还需要自己的模型类吗?

标签 php database orm laravel eloquent

我已经使用 laravel(php mvc 框架)几个星期了。目前,我正在为每个非数据透视表创建一个模型。即使是简单的表格:

id (unsigned int (PK)) | usertype (varchar(20))

1                             | guest

2                             | member

3                             | Moderator

因为它可以更轻松地使用 Eloquent ORM 将我的其他模型与它们关联起来。

我想知道为了利用 ORM 而为如此简单的表创建模型是否正常,或者是否有更好的方法?

目前,我的应用程序正在使用这些表的模型来运行,但我仍然想确保在学习时掌握良好的编码约定。

提前致谢。

最佳答案

这里是长答案:是的!

我不知道 model 何时或为何成为 entity 的同义词,但这会导致困惑。

根据 MVC 发明者 Trygve Reenskaug 在 original MVC article 中的说法:

DEFINITION
A Model is an active representation of an abstraction in the form of data in a computing system

[...]

The models are represented in the computer as acollection of data together with the methods necessary to process these data.

所以,现在很多人(错误地)将模型定义为数据表示、数据存储或其他东西,但这是错误的。

模型处理您的应用程序逻辑,这包括数据抽象、数据存储、数据处理等。

我习惯将我的数据抽象称为实体,而不是模型。我的应用程序模型层称为服务应用程序模型。我的存储层仅称为 Storage 等等...所有这些加起来就是我们所说的 Model

澄清了这一点,现在我们可以继续......

You said:

Because it makes it easier to relate my other models to them using the eloquent ORM.

够了!

没有什么可以阻止您使用计划 txt 文件作为存储,但如果您的数据与其他数据相关,那么您应该寻找数据库。

Eloquent 是一种 ORM(对象关系映射),因此它依赖于其背后的数据库。如果使用txt文件,如何通过用户类型恢复用户?

我不习惯框架,但大多数框架都会自动生成实体,你只需要声明它们...

如果某个实体没有业务逻辑,而您只需要存储它,那么您不需要它的“完整模型”。这就是你正在做的事情。

希望我说服了你......

关于php - 极其简单的表格还需要自己的模型类吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19919629/

相关文章:

php - 为什么 Laravel Sessions 在切换服务器后仅在 Safari 和 IE 中会失败?

ruby-on-rails - 获取 Rails 以非 UTC 时间将记录保存到数据库

python - Django 查询互相喜欢的用户

php - 文件上传ajax后向dataTable添加新行

php - 使用 PHP 执行 linux 命令

php glob 和 scandir 函数在网络服务器上不起作用

javascript - 网站的 id 传递替代方案

sql - PostgreSQL 性能监控工具

java - Java 类中的多对多关系,无需使用任何 ORM

php - 是否可以使用反射修改对象实例的方法