代码之家  ›  专栏  ›  技术社区  ›  Kevin Loney

表模块与域模型

  •  22
  • Kevin Loney  · 技术社区  · 17 年前

    我问起 Choosing a method to store user profiles interesting response from David Thomas Garcia

    1 回复  |  直到 9 年前
        1
  •  39
  •   Bill Karwin    17 年前

    最好的参考是Martin Fowler的“企业应用程序架构模式”:

    以下是表格模块部分的摘录:

    A. 表模块 组织域 中每个表一个类的逻辑 数据库,以及 类包含各种过程 这将对数据起作用。这个 主要区别于 领域 模型 如果你有很多 命令,a 我要一个 每个订单的订单对象,而 桌子 将有一个对象要处理 所有命令。

    表模块在您为用户配置文件数据描述的灵活数据库体系结构中特别有用,基本上是 Entity-Attribute-Value 设计

    相反,表模块使您更容易编写应用于基础数据库表中多行的逻辑。如果为给定的用户创建概要文件,则需要指定所有这些属性,并且Table模块类将具有将其转换为一系列属性的代码 INSERT 语句,每个属性一行。

    $table->setUserProfile( $userid, array('firstname'=>'Kevin', 'lastname'=>'Loney') );
    

    同样,查询给定用户的概要文件将使用表模块将查询结果集的多行映射到对象成员。

    $hashArray = $table->getUserProfile( $userid );