作者altecjc (嘉诚)
看板PHP
标题[请益] 需求接近复制整个资料表..
时间Wed Jun 6 23:36:47 2018
大家好,这边有个问题,最近想不出什麽关键字搜寻,上来请教大神建议
本来想在 database 版上问,但我想不确定是纯粹资料库解法或者...
正题开始:
产品资料表 (products)
product_id | active (上架) | is_hot (热门) | ...
使用者产品表 (user_products)
id | user_id | product_id | active | is_hot | ...
产品资料表,有上架/热门的设定,是针对主站的显示,然而个别使用者
可以针对自己子站,是否显示/热门设定,产品内容等都不需使用者修改
目前想不出什麽方法,总不能新增一个使用者,就把几千笔资料捞出
一笔一笔的 insert into 到 user_products 这样子感觉不是正解
(不要跟我说可以一次大量 insert (insert into (), (), ()...,因为
这招还是有极限,要开很大,而且我希望管理者新增使用者不要等太久..)
跪求关键字,或是给我一个方向
感谢大大
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 122.118.219.193
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/PHP/M.1528299413.A.EB1.html
※ 编辑: altecjc (122.118.219.193), 06/06/2018 23:38:19
1F:推 liisi: 不懂意思 你是说新增一个使用者 就把所有商品表灌进去? 06/06 23:43
2F:→ liisi: 如果是这样 用 insert select就好.. 06/06 23:45
3F:推 lhsieh: 个人会只用一个商品表,is_hot跟active你原本可能用bit,我 06/07 04:17
4F:→ lhsieh: 会用包含用到的所有user_id组成的长字串 06/07 04:17
5F:推 lhsieh: 看习惯是用特定符号接或每个user_id用两符号夹,後者可以直 06/07 04:23
6F:→ lhsieh: 接like查询 06/07 04:23
7F:→ lhsieh: 跟PHP有关就设定变动时栏位内容字串处理的部份 06/07 04:26
8F:→ lhsieh: 主站也给个id 06/07 04:28
9F:→ MOONRAKER: 你是做开店系统吧 会每秒有10个人要开店吗 06/07 11:01
10F:→ altecjc: 不会每10秒开站,但是商品有1000笔以上的话就变成一个use 06/07 14:47
11F:→ altecjc: r要 insert 这麽多笔到 user_products 06/07 14:47
12F:→ altecjc: 对,就是开站系统这样的 06/07 14:48
13F:→ altecjc: insert select 是复制一张表,但我不是要复制新表 06/07 14:49
14F:→ fevoath0924: 写stored procedure跑 06/07 19:37
15F:→ MOONRAKER: 不是我不是问每10秒开站 是每秒开10个站 06/07 21:59
16F:→ MOONRAKER: 如果只是你整理出来这五个栏位 那一千份也没啥好紧张 06/07 22:00
17F:→ MOONRAKER: 没有这些你连对应都没有 06/07 22:01
18F:→ kroutony: 这资料表设计没有问题吗? 06/08 00:00
19F:→ kroutony: 为什麽不是有active或is_hot的再进去 06/08 00:02
20F:→ kroutony: 预设全部进去跟全部都没进去意思是一样的 06/08 00:02
21F:→ altecjc: 其实这整个流程是 user 会自己去选择商品,才执行 insert 06/08 00:21
22F:→ altecjc: user_products 没错,但基本上使用者会使用全部商品上架 06/08 00:21
23F:→ altecjc: ,再去调整 is_hot 06/08 00:21
24F:推 liisi: 如果是上述这样 根本就不需要insert全部 = = 06/08 23:40
25F:→ liisi: 商品档本身 就等於是所有user通用 06/08 23:40
26F:推 liisi: 对唷 还有上架的部分 算了 你还是用insert select 好了 06/08 23:45
27F:→ liisi: insert select 可以选择要需要的栏位 又不是复制新表 06/08 23:46
28F:推 jaywang4: 我是觉得原po的需求没有讲得很清楚,但会搞成这样应该先 06/09 21:59
29F:→ jaywang4: 检讨资料库设计 06/09 21:59
30F:→ xdraculax: 建个只有 user_id, product_id, status enum(disabled, 06/13 07:19
31F:→ xdraculax: hot) 的表就够用了,只写入公表显示但 user 关闭或热 06/13 07:19
32F:→ xdraculax: 门的 06/13 07:19
33F:→ xdraculax: 写入方式用单笔 ajax 或批次 insert select 都可以 06/13 07:20