[請益] 需求接近複製整個資料表..

看板PHP作者 (嘉誠)時間6年前 (2018/06/06 23:36), 6年前編輯推噓6(6027)
留言33則, 8人參與, 6年前最新討論串1/1
大家好,這邊有個問題,最近想不出什麼關鍵字搜尋,上來請教大神建議 本來想在 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://www.ptt.cc/bbs/PHP/M.1528299413.A.EB1.html ※ 編輯: altecjc (122.118.219.193), 06/06/2018 23:38:19

06/06 23:43, 6年前 , 1F
不懂意思 你是說新增一個使用者 就把所有商品表灌進去?
06/06 23:43, 1F

06/06 23:45, 6年前 , 2F
如果是這樣 用 insert select就好..
06/06 23:45, 2F

06/07 04:17, 6年前 , 3F
個人會只用一個商品表,is_hot跟active你原本可能用bit,我
06/07 04:17, 3F

06/07 04:17, 6年前 , 4F
會用包含用到的所有user_id組成的長字串
06/07 04:17, 4F

06/07 04:23, 6年前 , 5F
看習慣是用特定符號接或每個user_id用兩符號夾,後者可以直
06/07 04:23, 5F

06/07 04:23, 6年前 , 6F
接like查詢
06/07 04:23, 6F

06/07 04:26, 6年前 , 7F
跟PHP有關就設定變動時欄位內容字串處理的部份
06/07 04:26, 7F

06/07 04:28, 6年前 , 8F
主站也給個id
06/07 04:28, 8F

06/07 11:01, 6年前 , 9F
你是做開店系統吧 會每秒有10個人要開店嗎
06/07 11:01, 9F

06/07 14:47, 6年前 , 10F
不會每10秒開站,但是商品有1000筆以上的話就變成一個use
06/07 14:47, 10F

06/07 14:47, 6年前 , 11F
r要 insert 這麼多筆到 user_products
06/07 14:47, 11F

06/07 14:48, 6年前 , 12F
對,就是開站系統這樣的
06/07 14:48, 12F

06/07 14:49, 6年前 , 13F
insert select 是複製一張表,但我不是要複製新表
06/07 14:49, 13F

06/07 19:37, 6年前 , 14F
寫stored procedure跑
06/07 19:37, 14F

06/07 21:59, 6年前 , 15F
不是我不是問每10秒開站 是每秒開10個站
06/07 21:59, 15F

06/07 22:00, 6年前 , 16F
如果只是你整理出來這五個欄位 那一千份也沒啥好緊張
06/07 22:00, 16F

06/07 22:01, 6年前 , 17F
沒有這些你連對應都沒有
06/07 22:01, 17F

06/08 00:00, 6年前 , 18F
這資料表設計沒有問題嗎?
06/08 00:00, 18F

06/08 00:02, 6年前 , 19F
為什麼不是有active或is_hot的再進去
06/08 00:02, 19F

06/08 00:02, 6年前 , 20F
預設全部進去跟全部都沒進去意思是一樣的
06/08 00:02, 20F

06/08 00:21, 6年前 , 21F
其實這整個流程是 user 會自己去選擇商品,才執行 insert
06/08 00:21, 21F

06/08 00:21, 6年前 , 22F
user_products 沒錯,但基本上使用者會使用全部商品上架
06/08 00:21, 22F

06/08 00:21, 6年前 , 23F
,再去調整 is_hot
06/08 00:21, 23F

06/08 23:40, 6年前 , 24F
如果是上述這樣 根本就不需要insert全部 = =
06/08 23:40, 24F

06/08 23:40, 6年前 , 25F
商品檔本身 就等於是所有user通用
06/08 23:40, 25F

06/08 23:45, 6年前 , 26F
對唷 還有上架的部分 算了 你還是用insert select 好了
06/08 23:45, 26F

06/08 23:46, 6年前 , 27F
insert select 可以選擇要需要的欄位 又不是複製新表
06/08 23:46, 27F

06/09 21:59, 6年前 , 28F
我是覺得原po的需求沒有講得很清楚,但會搞成這樣應該先
06/09 21:59, 28F

06/09 21:59, 6年前 , 29F
檢討資料庫設計
06/09 21:59, 29F

06/13 07:19, 6年前 , 30F
建個只有 user_id, product_id, status enum(disabled,
06/13 07:19, 30F

06/13 07:19, 6年前 , 31F
hot) 的表就夠用了,只寫入公表顯示但 user 關閉或熱
06/13 07:19, 31F

06/13 07:19, 6年前 , 32F
門的
06/13 07:19, 32F

06/13 07:20, 6年前 , 33F
寫入方式用單筆 ajax 或批次 insert select 都可以
06/13 07:20, 33F
文章代碼(AID): #1R5_-Lwn (PHP)
文章代碼(AID): #1R5_-Lwn (PHP)