1
fairyto2 2019-04-07 21:31:12 +08:00 via iPhone
你这个表设计都不符合 nf1
|
2
18688639114 2019-04-07 21:37:41 +08:00
如果会员只允许出现在一个 组里面,那 A 表去加个 group_id,B 表也不需要 nameList 了
如果会员可以存在多个组内,那就得重新设计一下 。 1:B 表删除 nameList, 保留 id group_name 2: 增加 C 表 组内成员表 , 需要有 group_id user_id 这样你后面的业务处理起来就方便很多! |
3
lzm1005 OP @18688639114 现有的 数据表就是这样的 如何在不动数据库的情况下 做处理 或者 A 表没有 group_id 的情况下 如何处理?
|
4
qiayue 2019-04-07 21:45:32 +08:00
没有什么东西是一成不变的,改表是最经济的做法,一劳永逸
|
5
18688639114 2019-04-07 21:49:33 +08:00
@lzm1005 SUBSTRING_INDEX 这个函数可以帮到你,将“张三,李四,王五” 转换的, 不过处理起来忒麻烦, 具体怎么用这个函数得好好查下文档。。。
|
6
tomczhen 2019-04-07 21:52:04 +08:00
从描述内容举例看,表 B 字段 nameList 的值可能是 “张三,李四,王五” 整个字符串,也就是这个表设计是反范式的。
估计后端是 PHP 写的吧 :doge: |
7
xiangyuecn 2019-04-07 21:52:57 +08:00
不改数据库,就赶紧跑路吧。或者祈祷第一个同名的人晚点出现,再跑路。
|
8
lzm1005 OP @xiangyuecn 只是举例..
|
9
lzm1005 OP @xiangyuecn 值肯定是唯一的.
|
10
xiangyuecn 2019-04-07 21:54:37 +08:00
#7 username ? 唯一? 当我没说
|
11
ebony0319 2019-04-07 22:04:31 +08:00
你的数据属于 sql 反模式。但是还是建议有一张表来记录这种关系。
查这种的思路在 mysql 种写一个类似于 filter 的过滤函数,传入两个字符串 A,B,B 切割后判断 A 在不在里面,但是会非常慢。 |
12
huangqincan 2019-04-14 21:48:33 +08:00
select * from A
where usernme no in (select namelist from B) |