sql >> データベース >  >> RDS >> Oracle

リレーショナルデータベースの行を削除または無効にする必要がありますか?

    削除しないと、今後のすべてのクエリで新しいクラスのバグが作成されます。クエリの記述は、パワーユーザー(つまり、IT以外の専門家)やジュニア開発者によって行われることが多いことを忘れないでください。したがって、BITアクティブフラグによってのみマークされた無効なデータを持つすべてのテーブルには、これから永久にすべてのクエリのWHERE句に追加のANDが必要になります。これは、ユーザーが成功の落とし穴ではなく失敗の落とし穴に陥るのに役立ちます。ただし、これらのフラグシステムを実装することを強くお勧めします。これは、設計が不適切でなければ、メンテナンス開発者が作成する多数のバグを修正する必要がないためです。

    テーブルに履歴データがあることはどれほど価値がありますか?将来を見据えたビジネスの場合、テーブルに古いデータがあると負担になる可能性があります。制約を作成するときに問題が発生します(存在しないデータを除外するには、すべての制約を変更する必要があります)。データ品質保証は、「削除することを恐れているが、二度と使用または更新したくない古いがらくた」と私たちが気にかけている新しいものを継続的に再識別しなければならないため、複雑になります。

    間違いだったので削除されたのですか?行が実際のエンティティに対応している場合は、「気化」、「デッド」、「建物を離れた」フラグを保持して設定するのが興味深いかもしれません。実生活でエンティティに対応しない行を誤って挿入した場合でも、DELETEは悪いことではありません。存在しなかった架空の顧客は、顧客テーブルにとどまることが重要ですか?

    そして最後に、個性が大きな役割を果たします。人々はデータを持ったパクラットになることもできます。 DBAがすべての新聞を30年前から保管していて、データを削除したくない場合は、無関係な個人的な好みではなく、メリットに基づいてデータ設計の決定を下していることを確認する必要があります。



    1. PL/SQLを学習するための開発環境のセットアップ

    2. SQL WHERE..IN句の複数の列

    3. MySQLデータベースで可能な値を列挙するにはどうすればよいですか?

    4. SQLを使用してテキストフィールドの単語数の統計を決定する