База даних для багатьох орендарів:
- Сервер БД, який має різну (ідентичну) базу даних / схему для кожного клієнта / орендаря ?; або
- Сервер БД, який має базу даних / схему, де клієнти / орендарі діляться записами всередині одних і тих же таблиць?
Наприклад, у варіанті №1 вище, у мене, можливо, є сервер MySQL на, скажімо,, mydb01.example.com
і він може мати customer1
базу даних всередині нього. Ця customer1
база даних може мати, скажімо, 10 таблиць, які забезпечують мою програму для конкретного клієнта (Клієнт №1). Він також може мати customer2
базу даних з такими ж 10 таблицями, але лише дані, що містять клієнта №2. Він може мати customer3
базу даних, customer4
базу даних тощо.
У варіанті №2 вище буде лише одна база даних / схема, скажімо myapp_db
, знову з 10 таблицями в ній (ті ж, що і вище). Але ось, дані для всіх клієнтів існують всередині цих 10 таблиць, і тому вони "діляться" таблицями. І на рівні програми, логіці та контролю безпеки, до яких користувачі отримують доступ до записів у цих 10 таблицях, і дуже обережно слідкуйте за тим, щоб Клієнт №1 ніколи не входив у додаток і бачив дані клієнта №3 тощо.
Яка з цих парадигм становить традиційну БД "багатоорендарів"? І якщо ні, то хтось може надати мені приклад (використовуючи описані вище сценарії) того, що таке БД з кількома орендарями?