「クライアント」とは、サービスにサインアップした企業または組織を意味することに注意してください。
バグ追跡アプリケーションを作成しています。アプリケーション インスタンスとデータベースの両方に関して、マルチテナント アプローチを採用することにしました。
したがって、すべてのクライアントからのエントリを含む 1 つの巨大なバグ テーブルがあります。バグ ID は ID 仕様です。このため、任意のクライアントのユーザーがバグを追加すると、増分されます。タスクを 3 つだけ追加したクライアントの場合、タスク ID は #45、#49、#53 の可能性があります。これは、他のクライアントのユーザーがその間にタスクを追加した可能性があるためです。
これはユースケースの観点から許容できますか?
場合によっては、クライアントが最新のバグ ID をバグ数の大まかな目安として使用することがあります。しかし実際には、システム内の TOTAL バグになります。または、最初のバグが #51134 から始まる場合は、驚くことでしょう。
一方、この特定の ID を「舞台裏で」持っていて、各クライアントの「可視」ID を個別に計算すると、番号が順番に表示されます。しかし、参照バグ ID を URL のパラメーターとして渡す場合、ユーザーに表示される ID は一意ではないため使用できません。ClientID - BugID の組み合わせはエレガントではないと思います。ユーザーが UI で 1 つの ID を表示し、URL で別の ID を表示するため、元の ID 仕様値を使用すると混乱が生じるのではないかと心配しています。言うまでもなく、開発者は ID を変更して URL を使用しようとし、それが失敗するのを観察します。
この問題を解決するにはどうすればよいですか? メンテナンスとアップグレードのプロセスがちょっと怖いので、マルチデータベースのアプローチには行きたくありません。