既に作成されたテーブルに列を追加する ALTER 手順を見ていましたが、列を動的に追加することは良い習慣とは見なされないと指定された多くの回答がありました。
特定の日の出席を監視するための追加の列を作成しようとしていますが、その目的に関連して、テーブルを変更することはまだ悪い習慣ですか?
質問する
2263 次
4 に答える
8
これはむやみに行うべきものではなく、計画を立てる必要がありますが、要件が変わったり、単に何かを忘れたりした場合は、必ず列を追加してください。
列を追加しないことは、単に良いアドバイスではなく、現実的ではありません。あなたはできるはずです
- 要件の変化に適応する 要件
は、アプリケーションが廃止されたり、事業が倒産した場合にのみ変化しなくなります - データベースの正規化を維持
する 列を追加する代わりに、既存のテーブルを参照するテーブル全体を追加することを決定できます。しないでください。 - 仕様/実装の間違いを修正する
私たちは皆人間です
ただし、列を追加することに注意してください
- テストが必要です
- 既存のアプリケーションを簡単に壊すことができます
- テストが必要です
- 計画が必要
- テストが必要です
于 2013-06-06T08:57:59.880 に答える
1
あなたの質問を理解するにはあまりにも多くの方法があります。
- 既存のテーブルに列を追加することについて話していますが、アプリケーションからその場で正確に動的に行うのではなく、アプリケーションコードを更新するときに1回行います。展開中。これは、アプリケーションとデータベース構造が同期している限り問題ありません。
- なんらかの条件が発生したとき、またはデータがテーブルの追加が必要な状態になったときはいつでも、アプリ、ランタイムから列を追加することについて話しているのです。これが良いことはめったにありません。変更が予想されず、めったに追加されないコンテンツ タイプを作成している場合は、CMS で問題ない場合があります。ただし、ほとんどの場合、これは設計が不適切であることを示しており、パフォーマンスと複雑さの両方の問題を引き起こします。
于 2013-06-06T08:58:38.860 に答える
0
データベースはプロジェクトの最初に作成する必要があり、そのままにしておく必要があります。たとえばINSERTなどのクエリを作成し、名前付き列を使用しないと、システムがクラッシュする可能性があります。
例えば
INSERT INTO `table` VALUES('a','b','c');
それ以外の
INSERT INTO `table`(column1, column2, column3,...)
VALUES ('a', 'b', 'c',...)
クラッシュする可能性のあるコード行がたくさんあります。ほとんどの場合、名前ではなく列番号に基づいています。DB を変更すると、多くの問題が発生する可能性があり、システムがかなり大きい場合、それらを見つけるのが困難になる可能性があります。
多数の列を作成するよりも、テーブル内にリレーションを作成することをお勧めします。
さらに、「冗長性と依存性を最小限に抑えるためにリレーショナル データベースのフィールドとテーブルを編成するプロセス」であるデータベースの正規化についても読む必要があります。
于 2013-06-06T08:49:49.793 に答える