我們產品開發有分不同的部分A team, B team , C team , D team
有時候他們也會互相相依, 有時A的流程會走到B , A有時會直接面向C等等等
可是問題來了, 他們都使用同一個資料庫環境
導致資料庫有時資料蠻雜亂的很不乾淨
不知道業界對於這樣不同team 共用資料庫有什麼解決方案
而且同時也要保持這個資料庫的同步,(資料架構上)的同步喔
不知道大家怎麼處理這個問題? 是用docker 嗎? 還是其他方案?
這邊其實是需要了解一下你所謂的「資料庫環境」
指的是一個mysql或是sql??
還是一個資料庫??
如果是前者。我拿mysql來說明好了。
基本上不同team我本身就會區分不同一帳號給他們用。
各自的team都是獨立的。如果說各自的team有各自的面對共用情況。
一般來說我還會再區分一個共用資料庫出來。指定多重帳號。
如
資料庫 => 使用者
a1 => a
a2 => a
a3 => a
b1 => b
b2 => b
b3 => b
c1 => c
d1 => d
g1 => a b c d
g2 => a b
g3 => c d
這樣子的話,
a使用者進來只會看到 a1 a2 a3 g1 g2
b使用者進來只會看到 b1 b2 b3 g1 g2
c使用者進來只會看到 c1 g1 g3
d使用者進來只會看到 d1 g1 g3
而資料庫管理人員也比較容易區分。
但如果是時性要將a1資料庫給b使用。
一般需要提出申請。並將a1資料庫重新改名為g開頭。
不要直接將a1分配給b。因為這樣幹才會開始產生亂源
不好意思,我忘了補充。
如果是後者........
我沒有任何的建議了。因為這已經是找死的行為了。
除非,你abcd team用的東西是功能分類。
但其實是同一個系統。那我無話可說。
但如果是不同系統但共用一個資料庫。
我只能說,你們心很大顆。真的不怕死。
不過,其實也並不是不可以。基本來說是可以用表前綴的方式來處理就是了。只是能否整理好。有點難了啦。就將就用吧。
我想可能為了秘密所以沒有表達很清楚, 我們應該算是同一個系統,但是是不同平台, 像是 mobile 類, web類 以及後台類, 不過每一個平台也不一定是全部功能會實現, 有時候mobile的流程之後還會找到web,,,等等, 這樣還是建議分開資料庫嗎? 還是應該是大家要之前好好規劃的問題?
如果是同一系統的情況下,這就見仁見智了。
我個人是偏向拆分資料庫。但大家共用處理。
但還是會區分共用性的資料庫出來。
一般來說,像是user及報表之類的會區分在共用資料庫內。
共用的資料庫則是需要各組別討論好。
雖然也有另外一招是共用庫的user就單純的帳密。
其它各部門的資料庫也有其自user。但得與共用的user做關聯性。
不過以上是需要在開發初期就得事先規劃好的才行。
如果依你目前的情況。就只能用前綴表名來處理了。
至少有前綴的情況下。雖然多,但至少還有一些可讀性。
不過一般還是會建議區分不同資料庫會比較好。
當然了,規劃的部份就要事先想好才行了。
把資料操作獨立出來,找專人負責,開接口給各產品存取
如果不行,那就記錄一下誰異動,免得資料出事的時候在那邊推託