Чому у вас є 3 бази даних з тими ж користувачами?
Що станеться, якщо одна база даних зараз знищиться?
Я задаю ці запитання, тому що Con бази даних користувачів-джерела, що знижується, перешкоджаючи використанню двох інших баз даних, може бути не такою великою проблемою, як це звучить.
Крім того, якщо база даних знизиться зараз, у вас вже будуть проблеми з узгодженістю, якщо користувачі будуть змінені в інших двох БД протягом цього періоду. Я не думаю, що ми можемо дати найкращу пораду без більше контексту.
Зараз я створив би четверту базу даних для користувачів, вносив би зміни лише там і синхронізував всі інші бази даних. Ви вже розповсюджуєте-денормалізуєте, змінюючи фактично однакові дані в трьох місцях, і, ймовірно, вже є проблеми узгодженості. Якщо толерантність до помилок важлива, ця схема все одно дає це під час вирішення задачі з декількома входами.
Я думаю, що наявність цієї четвертої бази даних лише для користувачів / налаштувань, а не використання однієї з ваших існуючих є хорошою стратегією, оскільки стає менше шансів знизитися, оскільки вона не прив’язана до інших ресурсів або сильно використовується. Зараз я бачу, що ви сказали, що не можете цього зробити, але мені не ясно, чому. Чи підтримують програми в основній базі даних редагування користувача безпосередньо, чи редагує користувач цілком окрему функцію, яку можна вказати в іншому місці?
Щоправда, з цією ідеєю "канонічної таблиці користувачів" - чи використовуєте ви синоніми чи синхронізуєте дані - ви не можете змінювати користувачів під час БД користувача, але мені це здається нормальним. Вирішіть проблему та вирішіть її! Одне джерело, одне місце для редагування, одне, що потрібно виправити, якщо воно порушено. Під час синхронізації всі інші бази даних мають тимчасові копії, з яких можна працювати, але без редагування. Мінімізація дублювання даних у всіх системах є великою і корисною метою. Введення одних і тих же даних у трьох місцях є серйозною проблемою, тому зробіть усе можливе, щоб усунути це.
Щоб вирішити більше ваших коментарів, якщо ваші ідентифікатори користувачів відрізняються у всіх ваших програмах, вам слід серйозно розглянути запланований час роботи для двох нових баз даних, щоб синхронізувати їх з основною (задайте окремий запитання, якщо вам потрібні ідеї про те, як це досягти, що хитро, але насправді НЕ ТРУДНО).
Якщо ви аналізуєте свої потреби в бізнесі і виявляєте, що в основній базі даних повинні бути добре знайдені користувацькі дані, ви все одно використовуєте їх як канонічні, а потім вибираєте між синонімами або синхронізацією, щоб вирішити, як незаплановані періоди вниз впливають на всі бази даних.
Одним із додаткових завдань щодо використання синонімів є те, що ви більше не зможете мати належних FK-користувачів для користувачів у кожній базі даних.