- - PR -
列の追加がデータベースファイルに更新されない
投稿者 | 投稿内容 | ||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
投稿日時: 2006-06-24 13:10
どういうことを目論まれているのか分かりませんが、RDB に対して列を追加する操作は DDL と呼ばれ、通常の INSERT などの行を追加する操作(DML)とは違います。実行時に DDL をやることを前提としたテーブル構造では正規化もされないことになり、DBMS の変更も困難になりますので、よほどのことがないかぎりやらないほうが良いです。 データーベースを管理するツールを作られているのならば、その限りではありませんが。 -- unibon {B73D0144-CD2A-11DA-8E06-0050DA15BC86} _________________ -- unibon {B73D0144-CD2A-11DA-8E06-0050DA15BC86} | ||||||||||||
|
投稿日時: 2006-06-24 14:19
ご指摘ありがとうございます。
私がやろうとしていますのは、装置の制御ソフトで従来は位置データなどを テキストファイルで保存していましたが、品種が多くなるにつれてファイルの数も 多くなってしまうので、Accessなどのデータベースファイル1つで管理しようとしています。 仕様追加などでパラメータが増えた場合のことを考えてお聞きしました。 NAL-6295さん、OleDBCommandを調べて実際に列を追加することができました。 ありがとうございました。ただ、列の追加により今後unibonさんが言われている ようなことで不具合が発生しないか心配ですが。 | ||||||||||||
|
投稿日時: 2006-06-24 21:13
動的に列を追加しなければならないような構成なのであれば、その内容を再検討した方が良いです。 例だと、"222" という列を追加しようとしていますが、データが増える度に列を増やすような構成であれば、再度、設計を見直すべきです。 例えば紙面での表をそのままテーブルの設計に用いた場合、次のようになりがちです。
上記で6が必要になった場合、6 の列を追加することになります。この場合は、
このように設計すれば列を動的に増減させる必要はなくなります。 #外しているかな?^^; | ||||||||||||
|
投稿日時: 2006-06-25 00:12
アドバイスありがとうございます。
なるほどと思いましたが、もしレコード(A, B, C・・・)数が多い場合、 ものすごく縦長になってAccess等で編集するときに見づらいと思いました。 | ||||||||||||
|
投稿日時: 2006-06-25 20:53
動的に列を編集する面倒よりマシ 列の数には制限があるのですが、そこまで伸びたらどうするのでしょう? で、DDL や IDbCommand については調べたのかな? | ||||||||||||
|
投稿日時: 2006-06-26 02:20
・・・ですねw
データに応じて列を増減させるということは普通はしません^^; 行の増減は、レコードの追加・削除にあたりますが、列を増減させるというのは、テーブルの構成を変えることになります。 また、検索条件式を書く場合や、データが格納されるイメージを想像してみて下さい。 どちらが効率よくデータを格納でき、また、どちらがよりデータを扱いやすいでしょうか? 見やすさのためにこれらを犠牲にするというのは、データベースの設計としては、あまりやらないことです。 Access で編集する時や見やすさに関しては、別途アプリケーションを用意するなどの方法を取ることをお勧めします。 #それと、Access ではなく SQLサーバーなどの使用をお勧めします。装置の制御ソフトとのことでしたら、尚更・・・ | ||||||||||||
|
投稿日時: 2006-06-26 05:18
データベースの正規化を念頭において
もう一度データベースを再設計(テーブルを分割することも含めて)してみてはどうでしょうか。 意図的に正規化より性能、保守性を優先させることもありますが、 今回のケースはこれに該当しないと思いますが。 _________________ ASP.NET+Ajaxサンプル集 | JavaScript+Ajaxサンプル集 |