每一张表需要对应一个dao吗

孙继峰 2018-10-04 10:36:47
萌新提问, 有哪些不合乎规范的设计还是麻烦各位给指出以下啦~

现在有三张表, 表设计不合理也麻烦各位给指出一下啦

用户表字段: user_id<pk>, user_name
项目表字段: item_id<pk>, author_id, title
标签表字段: item_id<pk>, tag_name<pk>

用户上传项目, 项目信息中需要填写多个标签, 暂且先抛开标签的业务性质


假设1:
每张表都要对应一个 dao 的话, 那么就还需要编写一个标签的类, 以及对标签 CRUD 的 dao, 我个人认为有些多余 (其实我数据库中还有很多个与标签表相似的表, 所以我觉得有些多余)

假设2:
直接在项目类中有一个 List<String> 来存储这个标签信息, 这样编写代码的话一个上传项目的 dao, 需要去操作两张表, 又有些不规范, 但是方便序列化返回给前端

那么各位有没有什么好的解决方法呢? 麻烦各位给点建议~
...全文
1729 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
BoringRong 2018-10-08
  • 打赏
  • 举报
回复
你应该还没用到mybatis,如果是mybatis的话你应该也不会问这个问题。简单地说,一个“dao”(可以是mapper等接口)对应着一个主实体类,就是你需要操作的实体,而不是去对应表
孙继峰 2018-10-06
  • 打赏
  • 举报
回复
我似乎想到解决办法了, 这样应该是合乎规范了吧..?

每个表都写一个 dao, 项目的 bean 里还是需要一个 List<String> 属性来存储标签, 在项目的 dao 中为标签以外的属性赋值, 返回一个项目的 bean(此时 bean 中的 List<String> tag 为空), 在标签 dao 中返回该项目对应的标签 List<String> 对象, 在项目的 service 中把项目 dao 返回的 bean 与标签 dao 返回的 List<String> 组装成一个完整的项目 bean, 这样既方便序列化返回也规范了
绽绅 2018-10-05
  • 打赏
  • 举报
回复
一个实体类对应一个dao就好,如果想要调别人的接口,就到service层调用。

81,114

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧