这种数据库设计好不好

uniteworld 2008-08-04 10:22:22
比如我有一个表,表中的数据每一条都是只有指定的一些用户才能访问,那么,我可以采用如下实现这个功能。
1、在该表a中添加一个字段,然后这个字段存储可以访问他的id列表,用,隔开,这样我用in查一下就可以了
2、新建一张表b,存储被访问的那条记录的id和可访问他的用户id,也就是说a表中每一条记录会对应多个b表中的记录,这样的话,查询就不用in了。
请问哪一种效率比较高,或者是不是还有更好的方式,谢谢!
...全文
76 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
wjalan 2008-08-07
  • 打赏
  • 举报
回复
数据库所能接受的大小。见过移动的数据没有呢。那才叫大啊。就你那张表。都是存在索引的。索引的查询是相当快的.可以说基本上没什么影响吧
uniteworld 2008-08-04
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 wjalan 的回复:]
第一种情况。很明显存在违反设计规范.不过还是可取的.但不方便维护.第二种情况.都是两个表的主键.存在索引访问速度也不慢.同时方便维护.去除一个用户对一个功能的访问是很轻松的
[/Quote]
这样的话总感觉数据量会很大,因为如果a表有1万条数据,那么如果平均每条对应10个,那么就是10条在b表中,
而且他的增长也是成倍数增长的,这个算是一个问题吗?
如一宝宝 2008-08-04
  • 打赏
  • 举报
回复
不行吧,这样不太符合关系型数据库,
你在数据库里面的列名有逻辑关系,
既然是n-n的关系还是新建一个关系表把
wjalan 2008-08-04
  • 打赏
  • 举报
回复
第一种情况。很明显存在违反设计规范.不过还是可取的.但不方便维护.第二种情况.都是两个表的主键.存在索引访问速度也不慢.同时方便维护.去除一个用户对一个功能的访问是很轻松的

67,538

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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