Soft_Job 板


LINE

既然提到id這件事 沒人帶的本菜鳥就想借問一下相關的問題 可能也發生了很低能的錯誤 (PHP + MYSQL) 給大家笑笑 1.目前我手上的資料庫大多數table都用mysql的auto increment int來當id。 然後 因為目前table間的relationships 都是用php去取 (laravel的ORM) 而不是用sql的foreign key 直接delete單一會讓系統崩潰,網頁500。 所以我在有可能要刪除的table 都會加一個名為status的tinyinteger 來判斷這筆資料是不是被刪掉了 ((想說日後可能可以做個資源回收桶之類的功能 目前公司沒有人會直接刪除資料 但如果之後有了 那我這種做法有什麼解套的方式嗎? ================== 2.方才提到大部分是increment integer 事實上有一個table的id是char 而且更糟糕的是這個id還兼當名稱使用 然後此id也被其他table用來建立關係 想請問各位大大 先前因為塞入的字串太大讓這個id 溢位 導致使用php的ORM建立的relationships時 直接觸發SQL Exception,讓系統掛掉 最後直接在前後端都設定名稱長度限制解決這個問題 除了這個情況之外 還有可能會遇到什麼問題? 是不是要想辦法修改資料庫的架構比較好 =================== 3.最近公司想要做一個動態表單的功能 我發現MYSQL有json型態可以用 就大膽放心地把所有表單的內容全都塞到這個欄位中 測試下來沒遇到什麼大問題 請問這個是合理的做法嗎? 小的目前基本上是一人做前後端 畢業不滿一年,所以還真很多東西不知道 拜託各位給個意見,面對日後越來越多人用我真心怕自己踩到什麼雷 ----- Sent from JPTT on my Asus ASUS_Z017DA. --



※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 223.136.119.119
※ 文章網址: https://webptt.com/m.aspx?n=bbs/Soft_Job/M.1557917474.A.0F8.html
1F:推 stevekevin10: 1.這是設計問題,要馬不要用ORM的關聯不然就不要隨 05/15 19:19
2F:→ stevekevin10: 意删資料,大型的系統建議都不要有FK 05/15 19:19
3F:→ stevekevin10: 2.建議pk就乖乖做pk的事情就好 05/15 19:20
4F:→ stevekevin10: 3.可能的問題在於你之後改表單json內容改變時,過去 05/15 19:21
5F:→ stevekevin10: 的資料跟新的資料用同一個邏輯層去跑可能會出錯。 05/15 19:21
1.我該慶幸當初因為覺得fk在laravel不好管才不用嗎哈哈 2.好的。之後另外寫邏輯將其矯正過來 3.會用json的地方不多。且目前系統不打算讓使用者更動舊的資料,所以還可以應付 謝謝您的建議
6F:推 ashlikewing: 沒事不要用fk,用狀態值記錄刪除是可以的,但是如果 05/15 19:36
7F:→ ashlikewing: 你的資料成長級數太快那最好評估一下這些留滯的資料 05/15 19:36
8F:→ ashlikewing: 比例有沒有意義 ,表大是會影響效能的 05/15 19:36
效能問題之後可能會慢慢浮現。謝謝建議。
9F:推 localhost: 都用ajax最簡單 05/15 19:38
10F:→ ashlikewing: 不確定MYSQL的json支不支援索引,如果你要拉裡面的 05/15 19:39
11F:→ ashlikewing: 資料做join要小心 05/15 19:39
12F:推 zelda123: 1. Laravel 有支援 deleted_at 做 soft delete 05/15 22:15
目前預計整個系統僅有表單資料庫與其格式的設定檔的儲存會是json,能不用我也不想再用,畢竟用起來沒其他預設類別順
13F:→ zelda123: 3. JSON 之後很難維護,不建議濫用 05/15 22:15
14F:推 pseudoman: 沒事不用fk?資料庫都不正規化嗎@@ 05/15 22:49
15F:推 lemon651: 大型系統不用fk的話,那用關連式資料庫的用意何在? 05/15 23:52
16F:推 ashlikewing: 正規化和fk有什麼必要關係嗎?沒有fk就不能做了? 05/16 00:30
17F:→ ashlikewing: 這篇文章 http://bit.ly/2Ypz2o2 參考一下 05/16 00:30
18F:推 blackie1019: 大型資料庫真的不要亂用與濫用FK,懂得就懂。不懂硬 05/16 01:12
19F:→ blackie1019: 要來學術派戰文字的就對他笑笑就好 05/16 01:12
20F:推 yaya517: 看過很多大型CRM確實都沒有在用FK的 05/16 07:15
21F:推 alan3100: soft delete是基本,join key是長字串在某些情況效能很差 05/16 07:23
好的。我會看看soft delete. 目前系統沒啥用到join.日後有需求時會多注意 ※ 編輯: newhandfun (223.136.119.119), 05/16/2019 08:31:00 ※ 編輯: newhandfun (223.136.119.119), 05/16/2019 08:35:05 ※ 編輯: newhandfun (223.136.119.119), 05/16/2019 08:37:57 ※ 編輯: newhandfun (223.136.119.119), 05/16/2019 08:40:06
22F:→ silent5566: 大型系統不推薦設FK 表格間相關太多時會被FK制肘 05/16 10:46
23F:→ lwtech: 他掛掉的原因一定有Log,然後優化它 05/16 11:24
24F:→ lwtech: 通常都是人下錯SQL,導致很慢,然後mySQL只能玩到GB級 05/16 11:27
謝謝您的數據。 之後如果有要儲存大量資料,打算換成postgresSQL ※ 編輯: newhandfun (223.136.119.119), 05/16/2019 22:32:24
25F:→ lwtech: PSQL一樣,高併發高可用高網路本來就是三個不一樣的選擇 05/16 23:26
26F:→ lwtech: 你要會db tunning 才重要,所以才會需要DBA 05/16 23:27
27F:推 Tony427: 正規化用久了,還會聽過反正規化喔XD 05/28 17:57







like.gif 您可能會有興趣的文章
icon.png[問題/行為] 貓晚上進房間會不會有憋尿問題
icon.pngRe: [閒聊] 選了錯誤的女孩成為魔法少女 XDDDDDDDDDD
icon.png[正妹] 瑞典 一張
icon.png[心得] EMS高領長版毛衣.墨小樓MC1002
icon.png[分享] 丹龍隔熱紙GE55+33+22
icon.png[問題] 清洗洗衣機
icon.png[尋物] 窗台下的空間
icon.png[閒聊] 双極の女神1 木魔爵
icon.png[售車] 新竹 1997 march 1297cc 白色 四門
icon.png[討論] 能從照片感受到攝影者心情嗎
icon.png[狂賀] 賀賀賀賀 賀!島村卯月!總選舉NO.1
icon.png[難過] 羨慕白皮膚的女生
icon.png閱讀文章
icon.png[黑特]
icon.png[問題] SBK S1安裝於安全帽位置
icon.png[分享] 舊woo100絕版開箱!!
icon.pngRe: [無言] 關於小包衛生紙
icon.png[開箱] E5-2683V3 RX480Strix 快睿C1 簡單測試
icon.png[心得] 蒼の海賊龍 地獄 執行者16PT
icon.png[售車] 1999年Virage iO 1.8EXi
icon.png[心得] 挑戰33 LV10 獅子座pt solo
icon.png[閒聊] 手把手教你不被桶之新手主購教學
icon.png[分享] Civic Type R 量產版官方照無預警流出
icon.png[售車] Golf 4 2.0 銀色 自排
icon.png[出售] Graco提籃汽座(有底座)2000元誠可議
icon.png[問題] 請問補牙材質掉了還能再補嗎?(台中半年內
icon.png[問題] 44th 單曲 生寫竟然都給重複的啊啊!
icon.png[心得] 華南紅卡/icash 核卡
icon.png[問題] 拔牙矯正這樣正常嗎
icon.png[贈送] 老莫高業 初業 102年版
icon.png[情報] 三大行動支付 本季掀戰火
icon.png[寶寶] 博客來Amos水蠟筆5/1特價五折
icon.pngRe: [心得] 新鮮人一些面試分享
icon.png[心得] 蒼の海賊龍 地獄 麒麟25PT
icon.pngRe: [閒聊] (君の名は。雷慎入) 君名二創漫畫翻譯
icon.pngRe: [閒聊] OGN中場影片:失蹤人口局 (英文字幕)
icon.png[問題] 台灣大哥大4G訊號差
icon.png[出售] [全國]全新千尋侘草LED燈, 水草

請輸入看板名稱,例如:e-shopping 或 站內搜尋

TOP