楼主:
altecjc (嘉诚)
2018-06-06 23:36:47大家好,这边有个问题,最近想不出什么关键字搜寻,上来请教大神建议
本来想在 database 版上问,但我想不确定是纯粹数据库解法或者...
正题开始:
产品资料表 (products)
product_id | active (上架) | is_hot (热门) | ...
使用者产品表 (user_products)
id | user_id | product_id | active | is_hot | ...
产品资料表,有上架/热门的设定,是针对主站的显示,然而个别使用者
可以针对自己子站,是否显示/热门设定,产品内容等都不需使用者修改
目前想不出什么方法,总不能新增一个使用者,就把几千笔资料捞出
一笔一笔的 insert into 到 user_products 这样子感觉不是正解
(不要跟我说可以一次大量 insert (insert into (), (), ()...,因为
这招还是有极限,要开很大,而且我希望管理者新增使用者不要等太久..)
跪求关键字,或是给我一个方向
感谢大大
作者:
liisi (小心一点)
2018-06-06 23:43:00不懂意思 你是说新增一个使用者 就把所有商品表灌进去?如果是这样 用 insert select就好..
作者:
lhsieh (不要问)
2018-06-07 04:17:00个人会只用一个商品表,is_hot跟active你原本可能用bit,我会用包含用到的所有user_id组成的长字串看习惯是用特定符号接或每个user_id用两符号夹,后者可以直接like查询跟PHP有关就设定变动时字段内容字串处理的部份主站也给个id
楼主:
altecjc (嘉诚)
2018-06-07 14:47:00不会每10秒开站,但是商品有1000笔以上的话就变成一个user要 insert 这么多笔到 user_products对,就是开站系统这样的insert select 是复制一张表,但我不是要复制新表
不是我不是问每10秒开站 是每秒开10个站如果只是你整理出来这五个字段 那一千份也没啥好紧张没有这些你连对应都没有
作者:
kroutony (bingbing)
2018-06-08 00:00:00这资料表设计没有问题吗?为什么不是有active或is_hot的再进去默认全部进去跟全部都没进去意思是一样的
楼主:
altecjc (嘉诚)
2018-06-08 00:21:00其实这整个流程是 user 会自己去选择商品,才执行 insertuser_products 没错,但基本上使用者会使用全部商品上架,再去调整 is_hot
作者:
liisi (小心一点)
2018-06-08 23:40:00如果是上述这样 根本就不需要insert全部 = =商品档本身 就等于是所有user通用对唷 还有上架的部分 算了 你还是用insert select 好了insert select 可以选择要需要的字段 又不是复制新表
作者:
jaywang4 (é…’ä¸ç‹‚士)
2018-06-09 21:59:00我是觉得原po的需求没有讲得很清楚,但会搞成这样应该先检讨数据库设计
建个只有 user_id, product_id, status enum(disabled,hot) 的表就够用了,只写入公表显示但 user 关闭或热门的写入方式用单笔 ajax 或批次 insert select 都可以