2016-11-07 50 views
0

通常web应用程序有一个数据库。假设在这个数据库中有一个表“用户”。我经常看到的是开发人员创建一个ORM类来从数据库中获取数据。例如,“用户”类只是数据库中数据的容器。ORM和做正确的OOP

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

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

我的问题如下:

  • 是否有任何ORM系统,这使得表和记录(如用户/用户在上面的例子中)

  • 之间的区别你使用ORM怎么办,仅用于访问数据库中的数据或实际的操作。

  • 如果ORM不会使表和记录之间的区别,你在哪里放置代码处理多个记录

  • 你认为什么是OOP和ORM结合起来的好办法?

+0

可以共享您的代码吗? –

+0

除非您有特定的代码问题,否则这属于软件工程网站 –

回答

0

ORM类表示单个记录,这些记录的全部表示该表。我认为不需要一个代表表格的类。您通常在编辑个人记录时使用的是处理多个对象操作的服务(例如UserService)。

+0

您对服务的真正含义是什么? – djxyz

+0

服务是一个提供有关单个主题的操作的类。例如,UserService可能会处理注册,登录,列出所有用户以及用户完成的其他事情。该服务通常是整个程序共享的类的单个实例。通常使用注入将服务传递给使用它的类(控制器)。 – Erik

+0

你能解释一下“ORM类”多一点吗?你的意思是'POCO'?另外,什么是“整个这些记录”?你的意思是像'List '这样的可收集的'POCO'吗? –