数据网关模式和外键

发布于 2024-10-17 21:21:38 字数 394 浏览 3 评论 0原文

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

我有一个场景

  • 城市表
  • 国家表
  • city.country_id 是country.id 的外键

    目标

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

    我的问题

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

    问题

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

  • How are this two concepts work together ?

    I have a scenario

  • city table
  • country table
  • city.country_id is a FK to country.id

    Objective

  • fetch all the cities and display the country name also

    My problem

  • the fetch method will get the cities from the table
  • if I need the country name I would have to do an extra search for it or an inner join
    but by doing so I make extra queries when they are not necessary (display just the a city info for example)

    Question

  • What is the right way to apply the Data Gateway Pattern in this case.

  • 如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

    扫码二维码加入Web技术交流群

    发布评论

    需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

    评论(2

    枕头说它不想醒 2024-10-24 21:21:38

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

    You should use a join if you need h associated country name. Simply add another method like fetchWithCountry.

    蓝眼泪 2024-10-24 21:21:38

    另一种选择是创建包含 CountryName 的城市表视图。然后让您的 DataGateway 使用视图进行选择并使用表进行保存。在您的域对象中,使 CountryName 字段成为哑只读字段。这种方法可能看起来像是一种肮脏的黑客行为,但它确实简化了事情。

    Another option is to create a view of the city table that includes the CountryName. Then get your DataGateway to select using the view and save using the table. In your domain objects make the CountryName field a dumb read only field. This approach might seem like a dirty hack but it does simplfy things.

    ~没有更多了~
    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文