收藏功能数据库如何实现一个字段存储多条数据

数据库

一、表设计

如果大家做收藏功能,肯定会遇到存储String数组类型或者int数组类型的情况,这种时候数据库中表字段反而不好对应存储在这里我推荐一下我使用的一种方法,首先我做的是帖子类的收藏功能,所以对应的收藏的帖子id是Interger类型的,我在数据库选择使用varchar,后端选择使用String类型来记录这个数组,设计是

   private String myfavorites;

这是pojo类里对应的字段,数据库则是在这里插入图片描述

后端

那么在这种情况下我们可以利用;来进行数据的多条存储,举个例子,一旦我收藏了某个帖子我就往该字段添加帖子id和;例如1;2;3然后我们在后端就可以利用String自带的split方法来分割得到正确的id并且根据id来得到对应的帖子返回数据展示在前端,提供一下我的逻辑处理:

  @PostMapping("/user/favority")
    public R<List<Post>> GetMyfavorite(@RequestBody String token){
        LambdaQueryWrapper<User> queryWrapper = new LambdaQueryWrapper<>();
        token = token.substring(0,token.length()-1);
        String[] split = token.split("\\+");
        token = split[0]+" "+split[1];
        queryWrapper.eq(User::getToken,token);
        User res = userService.getOne(queryWrapper);
        //数据库使用分号来间隔,后端需要分割分号来得到帖子Id
        String myfavorites = res.getMyfavorites();
        String[] postIds = myfavorites.split(";");
        List<Post> favority = new ArrayList<>();
        LambdaQueryWrapper<Post> queryWrapper1 = new LambdaQueryWrapper<>();
        for (String postId : postIds) {
            Integer newid = Integer.valueOf(postId);
            //得到对应的帖子并且存入favority数组中
            queryWrapper1.eq(Post::getId,newid);
            Post mylove = postService.getOne(queryWrapper1);
            queryWrapper1.clear();
            favority.add(mylove);
        }
        return R.success(favority);
    }

这里简单解释一下,首先是根据jwt令牌得到当前是哪个用户,由于前端传参问题的存在,需要对传过来的token进行处理,然后得到了对应的User以后,在得到数据库中的字段内容,然后就是利用迭代器得到所有的帖子信息存储到List中最终返回给前端。
希望帖子对大家有帮助

收藏夹和购物车系统的实现收藏夹子系统 (1) 【收藏指定图书】能收藏一本图书,并记录收藏日期(某年某月某日,如2016-12-12。所有日期都采用人工定义方式输入,不取机器日期)。图书的信息包括图书号(是唯一的)、书名、作者、出版社、出版日期、价格。 (2) 【查询指定图书】能按照图书号查询显示收藏夹中图书的相关信息(也可以扩展功能为按照书名、作者、出版社、出版日期、指定价格大小范围查询显示收藏夹中图书的相关信息)。 (3) 【按日期显示所有图书】能按照收藏日期的先后显示输出所收藏的所有图书的相关信息。 (4) 【移出收藏夹】可以把不想收藏的某一本指定图书号的图书直接移出收藏夹。 (5) 【加入购物车】将收藏夹中的某一本指定图书号的图书加入到购物车。 (6) 【按价格显示所有图书】能按照价格的大小显示输出收藏夹中的所有图书的相关信息。  购物车子系统 (1) 【直接加入购物车】把准备购买的一本图书直接加入购物车,同时记录加入购物车的日期。图书的信息包括图书号(是唯一的)、书名、作者、出版社、出版日期、价格、购买数量、购买金额(自动计算)。 (2) 【查询指定图书】能按照图书号查询显示购物车中准备购买的图书的相关信息(也可以扩展功能为按照书名、作者、出版社、出版日期、指定价格大小范围查询显示购物车中图书的相关信息)。 (3) 【修改购买数量】可以修改购物车中准备购买的某一本指定图书号的图书的数量,同时自动计算修改购买金额(购买金额=购买数量*价格)。 (4) 【删除指定图书并移到收藏夹】把购物车中的某一本指定图书号的图书删除并移到收藏夹。 (5) 【直接删除指定图书】可以把不想购买的某一本指定图书号的图书从购物车中删除。 (6) 【按图书号显示所有图书】把购物车中所有图书按照图书号列出每一本图书的图书号、书名、作者、出版社、出版日期、价格、购买数量、购买金额,最后列出总共有多少本图书、总金额是多少。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值