举个栗子
一个用户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不存在中间表里面就添加
}
}
然后结束
}这样做方法很臃肿而且代码阅读性很差看上去又很脏 请教大牛们是如何设计的 最后能提供下这几案例 谢谢类遍历事务
一个用户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不存在中间表里面就添加
}
}
然后结束
}这样做方法很臃肿而且代码阅读性很差看上去又很脏 请教大牛们是如何设计的 最后能提供下这几案例 谢谢类遍历事务
解决方案 »
- Message="找不到方法:“Void System.Reflection.Emit.DynamicMethod..ctor(System.String, System.Type, System.
- repeater导出excl表格
- "table" PK "div+css"
- 有关动态生成用户控件报错的问题
- 上海普华公司招聘.net 高级程序员
- 关于缓存的问题,缓存中基本能容量多少条数据?我大约放2万左右的数据,我想不算多吧?
- 怎么样写出下面的形式的代码????
- 200分 求助real控件问题 解决马上给分 顶者有分
- 请问有人知道在ASP.NET里怎么把一个远程服务器下的CSV文件下载到本地吗?
- 如何在c#,asp.net(B/S)项目中实现实时通信??有好的解决方案吗?
- VS2005如何打开一个网站
- MVC 路由指向
这样做没什么问题,也确实符合数据库设计的规范,但是也确实有点麻烦我的做法是功能直接拼接成一个字段与用户id对应,如"功能1,功能2,功能3"Vs"用户id",建中间表,或不建中间表都可以。然后程序里面作品接,拆分。
路子有点野,期望有大神提供更好方法。