2009-03-05 9 views
0

理想的には、レコードがアクティブであるかどうかを示すためにテーブルに「isActive」フィールドを持たせますが、フィールドを現場にするために複数のストアドプロシージャを変更するすることを意味します。特定の外来キーを無効にする迅速で汚い方法

私は汚れたトリックを思いついて、それを実行するように誘惑しています。結果セットはいくつかの結合によって生成されるので、私はテーブルの外来キーを "*"、 "x"などの記号を少し変更することを考えていました。

恐れるべきことはありますか?

答えて

3

他のすべてのストアドプロシージャを変更せずに「非アクティブ」状態にする1つの方法は、レコードがアクティブでない間にレコードを「非アクティブ」テーブルに移動することです。

+0

私は実際にこのアイデアが好きです:)しかし、あなたはその目的のために多くのミラーテーブルを持つことになります。それにもかかわらず、滑らかです。 – Haoest

1

恐れるべきことはありますか?

特殊文字を追加したために判読不能なデータの不一致が発生しましたか?

後でこの問題を解決する場合は、ストアドプロシージャまたはテーブルをリファクタリングするときが来たと思います。

1

データベースにアクセスして、特定の行に手動で文字を追加して、単一の顧客などを無効にすることを意味しますか?

追加することはできますか?顧客はWHERE句に(1234、...)を一時的に挿入しないでください。

参照整合性が許せば、そのようなデータを混乱させてはいけないと思います。

関連する問題