2

私は 2 つのクラスを持ってUserStatusます。ユーザーにはいくつかのステータスがありますが、これは当然のMany-to-One関係であり、DB テーブルに簡単にマップできます。

ただし、この要件では、ユーザーが「現在の」ステータスを維持する必要もあります。つまり、Userテーブルでは、テーブルへの外部キーが必要Statusです。この結果、2 つのテーブル間に反対方向の 2 つの外部キーが存在します。

これの明らかな問題の 1 つは、レコードが 2 つのテーブルに挿入されると、どちらも削除できないため、一方のテーブルから削除すると、もう一方のテーブルの外部キーに違反することです。

この状況に最適な設計は何ですか?

4

2 に答える 2

1

ステータスを別のテーブルに保持する必要がありますか? Java列挙型だけで表すことはできず、ユーザーにはステータスプロパティがあります。このようなもの:

public enum UserStatus {
        X, Y, Z;
}

public class User {
    private UserStatus status;
        ...
}
于 2013-07-31T10:22:26.897 に答える