昨天去面试碰到这样两个数据库问题。
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这样的数字是不满足要求的)
有点像用户权限表设计一样
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字段时间彼此多对多的关系
沙发,哈哈