Mengapa Anda memiliki 3 database dengan pengguna yang sama?
Apa yang terjadi jika satu basis data turun sekarang?
Saya mengajukan pertanyaan ini karena Con dari database sumber pengguna turun mencegah penggunaan dua database lain mungkin tidak menjadi masalah besar seperti kedengarannya.
Selain itu, jika database turun sekarang, Anda akan memiliki masalah konsistensi jika pengguna dimodifikasi di dua DB lainnya selama periode itu. Saya tidak berpikir kita bisa memberikan saran terbaik tanpa lebih banyak konteks.
Saat ini saya akan membuat database keempat untuk pengguna, membuat perubahan hanya di sana, dan menyinkronkan di database lain. Anda sudah terdistribusi-dinormalisasi dengan mengubah dasarnya data yang sama di tiga tempat, dan mungkin sudah memiliki masalah konsistensi. Jika toleransi kesalahan penting maka skema ini masih memberikan itu sambil menyelesaikan masalah multiple entry.
Saya pikir memiliki basis data pengguna / pengaturan-keempat ini daripada menggunakan salah satu yang sudah ada adalah strategi yang baik karena menjadi lebih kecil kemungkinannya karena tidak terikat dengan sumber daya lain atau banyak digunakan. Saya mengerti sekarang bahwa Anda mengatakan Anda tidak dapat melakukan ini, tetapi saya tidak jelas mengapa. Apakah aplikasi pada basis data utama mendukung pengeditan pengguna secara langsung, atau apakah pengeditan pengguna merupakan fungsi yang sepenuhnya terpisah yang dapat diarahkan ke tempat lain?
Benar, dengan ide "tabel pengguna kanonik" ini - apakah Anda menggunakan sinonim atau menyinkronkan data - Anda tidak dapat memodifikasi pengguna selama DB pengguna yang tidak digunakan, tetapi itu tampaknya tidak masalah bagi saya. Perbaiki masalah dan angkat! Satu sumber, satu tempat untuk mengedit, satu hal untuk diperbaiki jika rusak. Dengan sinkronisasi, semua database lain memiliki salinan sementara yang dapat digunakan, tetapi tanpa pengeditan. Meminimalkan duplikasi data lintas sistem adalah tujuan yang hebat dan bermanfaat. Ini adalah masalah serius untuk memasukkan data yang sama di tiga tempat, jadi lakukan apa pun yang Anda bisa untuk menghilangkannya.
Untuk membahas lebih banyak komentar Anda, jika ID pengguna Anda berbeda di semua aplikasi Anda, maka Anda harus secara serius mempertimbangkan waktu henti yang direncanakan untuk dua database baru Anda untuk menyelaraskannya dengan yang utama (ajukan pertanyaan terpisah jika Anda memerlukan ide tentang cara mencapai ini, yang sulit tetapi tidak terlalu sulit).
Jika Anda menganalisis kebutuhan bisnis Anda dan menemukan bahwa basis data utama harus memiliki data pengguna yang tidak apa-apa, Anda masih menggunakannya sebagai kanonik, lalu pilih antara sinonim atau sinkronisasi untuk mengatasi bagaimana waktu tidak terencana memengaruhi semua basis data.
Satu Con tambahan untuk menggunakan sinonim adalah bahwa Anda tidak lagi dapat memiliki FK yang tepat untuk Pengguna di setiap database.