実際には、これはちょうどC#の質問ではありません。ソフトウェア開発者のほとんどはこの決定に直面していました。 私の選択はトップの親としてnullを使用しています。このため、
シナリオ1:PARENTID列でNULLを使用できない場合は、でなければならないすべての
の1-)まず、我々は
2)最初のレコード(トップ親のParentIDとID列の間のテーブルの外部キー関係を指定する必要があります)のPARENTIDは、自身のIDに等しい
これは悪い練習です。これは関係が無限ループになるためです。
シナリオ2:null可能なPARENTID列を使用する場合。
1)大部分のDBMSは、幸いなことに、外部キーの関係にNULL値を許可します。
2)これにより、PARENTIDにヌル値を持つだけで、最初のレコードまたは他のレコードをトップの親ローにすることができます。
無限ループを作成する必要はありません。 ヌルチェックを忘れる、または特別な値を忘れることは、私が思うに違いありません。 私たちはすでに特別な値を持っていますが、これはヌル値です。
私は早めにEmpty Guidを使用しています。そして、「選択してください」、「選択する」などのレポート項目が表示されます。親の親(Empty Guid)のためです。だから私はそれを確認する必要があります。
私たちは論理的なERDをどのように見ていたかによって、これらの関係を「ブタの耳」と呼びました。これがOracle上にある場合は、CONNECT BY PRIOR id = parentidを使用します。 –