Обратите внимание, что когда я говорю "клиент", я имею в виду предприятия или организации, которые подписались на услугу.
Я создаю приложение для отслеживания ошибок. Я решил использовать мультитенантный подход как к экземпляру приложения, так и к базе данных.
Следовательно, существует одна огромная таблица ошибок с записями от всех клиентов. Идентификатор ошибки - это спецификация личности. Из-за этого, когда любой пользователь под любым клиентом добавляет ошибку, она увеличивается. Для клиента, который добавил только 3 задачи, идентификаторы задач могут быть # 45, # 49, # 53, потому что пользователи других клиентов могли добавить некоторые из них!
Это приемлемо с точки зрения варианта использования?
Иногда клиенты могут воспринимать последний идентификатор ошибки как приблизительный показатель количества ошибок. Но на самом деле это будут ВСЕГО ошибки в системе. Или они будут просто удивлены, если их первая ошибка начинается с # 51134!
С другой стороны, если у меня есть этот конкретный идентификатор "за кадром", и я рассчитываю "видимый" идентификатор для каждого клиента в отдельности, они будут видеть числа в порядке. Но при передаче ссылочного идентификатора ошибки в качестве параметров в URL я не могу использовать видимый пользователем идентификатор, потому что он не уникален. Я не думаю, что ClientID - BugID Combo будет элегантным. Я боюсь, что использование исходного значения спецификации идентификатора вызовет путаницу, поскольку пользователь увидит один идентификатор в пользовательском интерфейсе и другой идентификатор в URL-адресе. И нет необходимости говорить, что разработчики будут пытаться использовать URL-адрес, изменяя идентификатор и наблюдая за его ошибкой.
Как я могу решить эту проблему? Я не хочу переходить на использование нескольких баз данных, так как боюсь процесса обслуживания и обновления.