您好, 欢迎来到 !    登录 | 注册 | | 设为首页 | 收藏本站

高效地将一对多多对多数据库映射到Golang中的struct

高效地将一对多多对多数据库映射到Golang中的struct

postgres中的sql

create schema temp;
set search_path = temp;
create table item
(
  id INT generated by default as identity primary key
);

create table tag
(
  id      INT generated by default as identity primary key,
  name    VARCHAR(160),
  item_id INT references item (id)
);

create view item_tags as
select id,
  (
          select
            array_to_json(array_agg(row_to_json(taglist.*))) as array_to_json
          from (
                select tag.name, tag.id
                 from tag
                         where item_id = item.id
               ) taglist ) as tags
from item ;


-- golang query this maybe 
select  row_to_json(row)
from (
    select * from item_tags
) row;

然后golang查询这个sql

select  row_to_json(row)
from (
    select * from item_tags
) row;

并解组结构:

优点:

postgres管理数据关系。使用sql函数添加/更新数据。

golang管理业务模型和逻辑。

这是简单的方法

Go 2022/1/1 18:28:59 有629人围观

撰写回答


你尚未登录,登录后可以

和开发者交流问题的细节

关注并接收问题和回答的更新提醒

参与内容的编辑和改进,让解决方法与时俱进

请先登录

推荐问题


联系我
置顶