【问题标题】:ORM and doing correct OOPORM 并做正确的 OOP
【发布时间】:2016-11-07 20:15:24
【问题描述】:

Web 应用程序通常有一个数据库。假设在这个数据库中有一个表 "user" 。我经常看到的是开发人员创建了一个 ORM 类来将数据从数据库中取出。例如,“用户”类只是数据库中数据的容器。

那不是我做的。 “用户”是对用户行为的封装。所有对用户做某事的代码都在“用户”类中。添加ORM是因为数据通常存储在数据库中。我总是定义 2 个类:一个“用户”/“用户列表”类(用户集合)和一个用户(个人用户)。 "users"/"userlist" 类也代表表,"user" 代表个人记录(例如检查密码是否正确)。

我注意到许多 ORM(如 ActiveRecord)系统并没有区分表和单个记录。只有一类“用户”。

我的问题如下:

  • 是否有任何 ORM 系统可以区分表和记录(如上例中的用户/用户)

  • 你如何使用ORM,只用于从数据库访问数据或用于真正的oop。

  • 如果 ORM 不区分表和记录,你将处理多条记录的代码放在哪里

  • 您认为结合 oop 和 ORM 的好方法是什么?

【问题讨论】:

    标签: sql database oop activerecord orm


    【解决方案1】:

    一个 ORM 类代表单个记录,而这些记录的全部代表表。我认为不需要一个代表表格的类。您通常在单个记录的版本中拥有处理对多个对象的操作的服务(例如 UserService)。

    【讨论】:

    • 服务到底是什么意思?
    • 服务是提供关于单个主题的操作的类。例如,UserService 可能会处理注册、登录、列出所有用户以及与用户一起完成的其他事情。服务通常是整个程序共享的类的单个实例。通常使用注入将服务传递给使用它的类(控制器)。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-08-24
    • 2011-10-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-11-17
    相关资源
    最近更新 更多