.net mvcとsqlserver dbを使用しています。我々はまた、データアクセスにNHibernateはを使用している単一の共有データベースを持つマルチテナントデータベース
EDIT
。私たちが独自のSQLを書いたり、procsをストアしたりすることはないので、これについて言及します。データベース内のトリガーは機能するかもしれませんが、データベース間でトリガーを実行できるかどうかはわかりません。
のEND EDIT
我々は、各クライアントがDBのそこ独自のインスタンスを持っているので、セットアップマルチテナントを持っていると思います。しかし、我々は、各テナントに多くのユーザ情報を持つ他のデータベースに接続させる必要があります。それらの間に少量の共有データが存在します。基本的に、テナントは共有データベース内のユーザーのデータを参照します。
アイデアは、一部の人が共有データベース(独立したクライアント)だけを使用し、テナントクライアントの1人が雇うことができるという考えです。テナントは共有データベース内の新しい従業員データにアクセスする必要があります。さらに、従業員は1人のテナントを残して別のテナントを雇ったり、別のテナントを離れることができます。もちろん、各テナントに共有データベーススキーマを持たせることができます。また、一部の人が退職するたびに大量の輸出入を行うこともできますが、これは多くの問題のようです。
テナントが共有データベースへの参照を持ちますが、参照整合性がないという事実を管理する方法に関するアドバイスをお願いします。あるいは、代替アプローチがあれば何でもよい。 ありがとう、 Raif
こんにちは、ありがとう。私はsprocsではなくnhibernateを使っていることを示すために私の質問を編集しました。私はトリガーの後または代わりに慣れていない私は研究する必要がありますか? – Raif
共有データで参照整合性を強化する場合は、それは確かに一方の方法です。これが必要かどうかは、私にとっては難しいことです。 –
ええ、はい私はトリガーが動作しない恐れがあります。共有DB内のデータが変更され、テナントが台無しになることが懸念されます。しかし、私は共有DBにトリガを入れて、正しいテナントを見つけてそこに情報を入れることはできません。共有DBには、接続するテナントへの参照はありません。 – Raif