中间表类设计

xinxing130 2013-07-08 05:01:35
举个栗子
一个用户user有多个功能供选择 用户表和功能表 如 insert,update,delete 然后我做了个中间表存放一个用户对应多个功能 一个功能也同时被多个用户使用 一般添加的是时候通常用多选框选择赋予这个用户的功能 当编辑的时候要去掉改用户的某些功能或添加某些功能 先说说本人以前的做法添加的时候还好 通常会这样做

public void add(user _user ,ArrayList list)
{
事务TransactionOptions开始
//用户添加
int id = 用户表.Add(_user);//返回用户ID
for(int 1=0;i<list.count;i++)
{
中间表.用户ID = id
中间表.功能ID = list[i].ToString()
中间表.add(中间表)
}
事务结束
}

编辑的时候就麻烦了会有好大一个方法操作
public void update(user _user ,ArrayList list//新的功能数据 )
{
事务TransactionOptions开始
//用户修改
用户表.update(_user);
//中间表修改
第一步: 查询中间表该用户的所有功能
第二步:对list进行遍历
for( 查询中间表该用户的所有功能)
{
for( 对list进行遍历)
{
进行判断如果原有的功能不存在list里面就删除
}
}

然后在添加操作遍历反一下
for(list进行遍历)
{
for( 查询中间表该用户的所有功能)
{
进行判断如果list不存在中间表里面就添加
}
}
然后结束
}

这样做方法很臃肿而且代码阅读性很差看上去又很脏 请教大牛们是如何设计的 最后能提供下这几案例 谢谢
...全文
210 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
xinxing130 2013-07-09
  • 打赏
  • 举报
回复
还有其他的想法没!顶一个
饕餮123 2013-07-08
  • 打赏
  • 举报
回复
楼主的功能表是一个功能Vs用户id做一条记录,然后多个功能的话多条记录。 这样做没什么问题,也确实符合数据库设计的规范,但是也确实有点麻烦。。。 我的做法是功能直接拼接成一个字段与用户id对应,如"功能1,功能2,功能3"Vs"用户id",建中间表,或不建中间表都可以。然后程序里面作品接,拆分。 路子有点野,期望有大神提供更好方法。
rtdb 2013-07-08
  • 打赏
  • 举报
回复
要想代码好看,在UPDATE时可以不比较,直接删除用户全部已有功能,然后调用ADD即可。

62,046

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

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