为了账号安全,请及时绑定邮箱和手机立即绑定

难倒了很多人的两个数据库问题!!

难倒了很多人的两个数据库问题!!

MM们 2018-12-06 15:07:31
昨天去面试碰到这样两个数据库问题。Q1。有三张数据库表,一个是User表,一个是 Role表,一个是Function表。要求把这三张表的结构设计出来。具体要求:1。环境是SQL Server数据库 2。User表与Role表是多对多的关系3。Role与Function表也是多对多的关系 Q2。数据库的User表里有一个叫做roles的字段,该字段里存放的值是像这样一些数据‘12,1,3,413,5,1’ 具体要求: 1。请用一条SQL语句把这张表里roles字段里由每个逗号分隔开来的数字有等于1的记录查询出来(注意,像12这样的数字是不满足要求的)
查看完整描述

5 回答

?
拉丁的传说

TA贡献1789条经验 获得超8个赞

有点像用户权限表设计一样

查看完整回答
反对 回复 2019-01-07
?
慕少森

TA贡献2019条经验 获得超9个赞

SELECT * FROM User WHERE CHARINDEX(',1,',','+roles+',')>0

这也会难倒许多人?有点夸张吧

我给你解决第一个问题:

user 表:UserID(编号) UserLogoName(登陆名字) UserRealName(真实姓名),roles                   (权限字符号串如‘1,2,3’)

Roles 表:RoleID(编号) RoleName(名称) functions(功能字符串 如:1,2,6 等)

Functions表:FID(编号) FName(名称)

说明:roles 和functions字段时间彼此多对多的关系

查看完整回答
反对 回复 2019-01-07
?
Smart猫小萌

TA贡献1911条经验 获得超7个赞

怎么还不给分?
查看完整回答
反对 回复 2019-01-07
?
ITMISS

TA贡献1871条经验 获得超8个赞

@传说哥: 兄弟,你用的这个函数很巧妙的解决了这个问题。我等另外一个问题解决后,会给你加分的!
查看完整回答
反对 回复 2019-01-07
?
江户川乱折腾

TA贡献1851条经验 获得超5个赞

沙发,哈哈

查看完整回答
反对 回复 2019-01-07
  • 5 回答
  • 0 关注
  • 564 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信