それは完全に正確ではありません。ユーザーテーブルがあり、一部/ほとんどのユーザーはトレーナーです。ユーザーがトレーナーか管理者かを指定する UserRole があり、それが唯一の違いです。おそらく最もクリーンな構造ではありませんが、多くの場合、管理者はトレーナーでもあり、うまく機能します.
だから、TrainerPayment のようなテーブルを用意します。いくつかの支払い情報とそれに関連付けられたトレーナーがあり、もちろんユーザーです。それで
public int User Trainer {get;set;}
したがって、NH を使用してスキーマを作成すると、
PaymentName varchar(250)
PaymentAmount double
TrainerId int FK
UserId int FK
次に、NH はこれらの FK の両方を異なるクエリに使用します。たとえば、load(trainerId) を実行すると、userid=2 を検索する SQL が生成されます。そして、どこかでクエリを実行し、trainerId を使用します。申し訳ありませんが、どこで発生したか忘れましたが、TrainerId を削除しようとしたところ、エラーが発生しました。参考になると思ったら調べてみます。
明確でない場合、私の質問は、なぜこれらの FK の両方が必要なのですか? 本当に1つだけ必要なようです。
ありがとう、ライフ