数据网关模式和外键

时间:2011-02-18 06:54:11

标签: php zend-framework zend-db

这两个概念如何协同工作?

我有一个场景

  • 城市表
  • 国家/地区表
  • city.country_id是country.id

    的FK

    目标

  • 获取所有城市并显示国家/地区名称

    我的问题

  • fetch方法将从表中获取城市
  • 如果我需要国家名称,我将需要额外搜索它或内部联接 但是通过这样做,我在不需要时进行额外的查询(例如,仅显示城市信息)

    问题

  • 在这种情况下应用数据网关模式的正确方法是什么。

  • 2 个答案:

    答案 0 :(得分:0)

    如果您需要关联的国家/地区名称,则应使用联接。只需添加其他方法,例如fetchWithCountry

    答案 1 :(得分:0)

    另一种选择是创建包含CountryName的city表的视图。然后让您的DataGateway使用视图进行选择并使用表格进行保存。在您的域对象中,将CountryName字段设置为哑读取字段。这种方法可能看起来像一个肮脏的黑客,但它确实简单。