Я разрабатываю базу данных для чистой мультитенантности (одна база данных, одна схема), и я хотел бы сохранить Tenant_Id в большинстве моих таблиц в качестве меры безопасности, чтобы гарантировать, что данные не попадут в руки неправильного клиента. Похоже, для этого потребуется составной ключ для каждой таблицы.
Пример:
В однопользовательских условиях у меня был бы единственный первичный ключ:
Animal_Id (PK)
Animal_Type
Animal_Name
В условиях мультитенантности я бы добавил еще один первичный ключ для Tenant_Id:
Animal_Id (PK)
Tenant_Id (PK)
Animal_Type
Animal_Name
Означает ли добавление столбца Tenant_Id в каждую таблицу, что мне потребуется составной ключ в каждой таблице, или есть безопасный способ избежать этого? Составные клавиши - это нормально, но я бы по возможности избегал их.
tenant_id
? - person Quassnoi   schedule 22.03.2011