2
各位會把 user 資料庫獨立出來嗎? (fourlightyears.blogspot.tw)
IngramChen 積分 3

以安全的角度來看,好像只是多上一道鎖而已。不過有些服務的確是個資和其他資料要割開,例如病歷或是基因體管理系統,我之前在中研院時有碰過類似的專案。個人的基因體資料要保密到家,而個人身份、姓名、住址等個資也是要完全隔離。

當然這是需求所致。若單純從架構上來看,沒事我不會去切。像是 kaif 其實因為加了 OAuth,所以 kaif 用戶帳號 已經不再單純只是帳號,而是一種 服務 (kaif OAuth provider)。提供給其他 app 連動。不過就算是如此,我還沒打算完全切割 user 出去就是。沒為什麼,就單純服務沒有大到要切而已,不想增加無謂的複雜度。

現在流行 microservice,或許可以從這個方向著手,讓 用戶帳號/個資 變成一個 isolate 的服務,不 reuse code,更不會對 user table 做 fk。可以考慮看看。

smallufo 積分 0

我本來也有這種想法(把 user 獨立出一個 db),但一直沒實際進行。看到這篇才知道也有人有類似的想法,不過他是從 security 角度切入。 本來想說 FK 怎辦? 但後來才知道 MySQL 可以 cross db FK constraint ,那也沒什麼關係了。

koji 積分 0

如果不是security面,還有其他原因讓你想切嗎?

smallufo 積分 0

有啊。就是讓整個 db 乾淨一點。一個 "identity" 的 core db , 存放 user 資料。由此 user base 衍伸出去的各種 app 則另外開 db , 不要全混在一個db內(然後只能骯髒地加各種 prefix ...)

koji 積分 0

如果是我切應該也是會為了 security 的關係吧。
好像還沒自己搞東西搞到這樣過...這已經把帳號做成一個服務了.. 沒經驗0rz。

kaif 積分 0

因為做db sharding切算嗎xd