Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/design-patterns/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/csharp-4.0/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql 表示查询结果行的对象是否有设计模式? 恰当的例子_Sql_Design Patterns_Orm - Fatal编程技术网

Sql 表示查询结果行的对象是否有设计模式? 恰当的例子

Sql 表示查询结果行的对象是否有设计模式? 恰当的例子,sql,design-patterns,orm,Sql,Design Patterns,Orm,假设我通过普通SQL或ORM库从应用程序对数据库进行复杂查询: SELECT user.name, book.title, home.address FROM user JOIN book on user.book_id = book.id JOIN home on book.home_id = home.id; 结果是一个(名称、标题、地址)元组列表 从每一行初始化一个对象通常很方便,a-la: def Shipping(object):

假设我通过普通SQL或ORM库从应用程序对数据库进行复杂查询:

SELECT user.name, book.title, home.address
       FROM user 
       JOIN book on user.book_id = book.id
       JOIN home on book.home_id = home.id;
结果是一个
(名称、标题、地址)
元组列表

从每一行初始化一个对象通常很方便,a-la:

def Shipping(object):
    def __init__(self, row):
        self.name = row[0]
        self.title = row[1]
        self.address = row[2]

    def action(self):
        return "Sending %s to %s at %s" % (self.book, self.user, self.address)
问题 是否存在表示数据库查询中的行的对象的设计模式?

笔记
  • 以下是:这个案例是不同的。引用表中的一行,它与数据库绑定。这意味着对象中的更改可以在数据库中具体化。我的案例讨论了一个反映查询的对象,该查询可能是复杂联接的结果。结果对象与数据库不相关,并且数据库中的更改无法反映回数据库

用一个对象表示每一个数据库行(虽然它使该对象能够更新数据库,这是您没有指定的)。

想到的,但实际上这不是一种“模式”。Dave,为响应太晚表示歉意,刚刚看到了您的答案。正如你所注意到的,我的案例与现行记录不同。前者获取任意查询结果(可能是联接),并且与数据库没有任何关系。后者将一个DB行与一个对象关联,并保留一个DB连接。明白了,谢谢。可能想在问题中用语言表达出来。