Я створив цей веб-додаток (php & mysql), який зберігає інформацію для різних організацій (наразі близько 20 клієнтів).
Поточний сценарій зберігає інформацію, пов'язану з клієнтом, в окремих базах даних, тому існує 20 клієнтських баз даних та 1 головна база даних.
Однією з головних переваг тут є те, що по мірі того, як кожен клієнт db є ізольованим, нумерація артефактів клієнта (звітів, аудитів) тощо проводиться впорядкованості; що дає нашим клієнтам відчуття безпеки.
Кожна БД має приблизно 15 таблиць, а найбільше рядків у таблиці - приблизно 2000. Це, як очікується, може бути збільшено до 5000 записів.
Управління однією зміною рівня db означає зміну 20 баз даних, але в рідкісних випадках, коли мені потрібно внести такі зміни, я використовую сценарій, який робить це в одному виклику функції.
Ми працюємо на спільному хостингу, і наш Інтернет-провайдер надає нам обмежений номер. баз даних; і саме це змусило мене думати з точки зору централізації бази даних; так що ВСІ дані клієнта можуть зберігатися у головній базі даних.
Звичайно, деякі важливі проблеми, які виникають, такі:
а. Підтримуючи послідовність артефактів (це можна вирішити, створивши додатковий довідковий ключ) b. Швидкість та продуктивність (у такому випадку я можу створити індекси для прискорення речей) c. Безпека: цим керуватиме як кожен запит, який отримує інформацію про клієнта. також буде відслідковувати їх client_id
Надалі нам може знадобитися порівняння наборів даних однієї організації з іншою, але я вважаю, що цього можна досягти і на централізованому db. Я дещо схильний (з міркувань продуктивності та ремонту) перейти до централізованої бази даних.
Як ви вважаєте, перехід до централізованої бази даних має більше сенсу, ніж залишатися таким, який ми є (на окремих базах даних)?
Дякую за вашу пораду.