USER は PERSON で、PERSON には COMPANY があります - user -> person は 1 対 1、person -> company は多対 1 です。
person_id は USER テーブルの FK です。company_id は PERSON テーブルの FK です。
PERSON は USER ではないかもしれませんが、USER は常に PERSON です。
company_id が user テーブルにある場合、username と company_id に基づいて一意のキーを作成できますが、そうではなく、データの複製になります。
現在、RoseDB マネージャー ラッパー コードで一意のユーザー名/会社 ID ルールを実装していますが、それは間違っているように感じます。可能であれば、DB レベルで独自のルールを定義したいのですが、どのようにアプローチすればよいかわかりません。私はこのようなことを試しました:
alter table user add unique(used_id,person.company_id);
しかし、それはうまくいきません。
ドキュメントを読んでも、少しでも似たようなことをする例が見つかりません。存在しない機能を追加しようとしていますか、それとも何か不足していますか?