我问的是选择存储用户配置文件的方法 https://stackoverflow.com/questions/429878/choosing-a-method-to-store-user-profiles前几天收到了大卫·托马斯·加西亚的有趣回应 https://stackoverflow.com/questions/429878/choosing-a-method-to-store-user-profiles#430044建议我使用表模块设计模式。看起来这可能就是我想要走的方向。我在谷歌上发现的所有内容似乎都是相当高水平的讨论,所以如果有人能给我指出一些例子的方向,或者让我更好地了解所涉及的具体细节,那就太好了。
最好的参考是 Martin Fowler 的《企业应用程序架构模式》:
以下是表模块部分的摘录:
A 表格模块组织域
逻辑中每个表一个类
数据库和单个实例
类包含各种过程
这将对数据起作用。这
主要区别与领域
模型就是说,如果你有很多
订单,一个领域模型会有一个
每个订单的订单对象桌子
模块将有一个对象要处理
所有订单。
表模块在您为用户配置文件数据描述的灵活数据库体系结构中特别有用,基本上是实体-属性-值 http://en.wikipedia.org/wiki/Entity-attribute-value_model design.
通常,如果您使用域模型,基础表中的每一行都会成为一个对象实例。由于您将用户配置文件信息存储在多行中,因此您最终必须创建许多域模型对象,而您真正想要的是一个封装所有用户属性的对象。
相反,表模块使您可以更轻松地编写适用于基础数据库表中多行的逻辑代码。如果您为给定用户创建配置文件,则需要指定所有这些属性,并且表模块类将具有将其转换为一系列属性的代码。INSERT
语句,每个属性一行。
$table->setUserProfile( $userid, array('firstname'=>'Kevin', 'lastname'=>'Loney') );
同样,查询给定用户的配置文件将使用表模块将查询结果集的多行映射到对象成员。
$hashArray = $table->getUserProfile( $userid );
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)