在构造Perl Moose对象时延迟加载SQL行?

时间:2017-03-18 00:46:19

标签: mysql perl moose

我使用Moose来表示存储在SQL数据库中的持久数据的对象。

给出一个示例SQL表' people':

id - unsigned int
name - varchar(200)
email - varchar(200)
phone - varchar(200)

我想要实例化

my $person = Person->new( id => 123 );

将$ person-> id设置为123,但尚未从SQL表中加载id = 123的行。然而,

my $name = $person->name;

将从SQL数据库中延迟加载整行,并将名称设置为$ name。后来,

my $address = $person->address;

将使用已经延迟加载的行,并将地址设置为$ address。

任何建议&模式?

奖励积分可获得优雅的子类化的答案,例如: Person :: Employee具有其他属性,例如“job_title',' salary'”,并包括如何在SQL' people'中最好地存储其他子类属性。表(或多个表,也许' people_employee'?)

或者,如果我以完全错误的方式解决这个问题,那么也应该知道这一点!我非常了解ORM(例如DBIx :: Class),但并不喜欢api,并且还计划为不涉及SQL的对象添加大量功能桌子,这似乎是穆斯的理想选择。

0 个答案:

没有答案
相关问题