0

携帯電話のテーブルを含むデータベースがあります。すべての携帯電話に 10 個のフィールドがあるとしましょう。テーブルに入力または変更するために、ユーザーが使用できるフォームをいくつか用意します。ただし、ユーザーが毎回 10 個のフィールドすべてを変更することは望ましくありません。4 つのフィールドについての情報を提供するだけで、残りのフィールドはプログラムによって自動的に入力または変更されます。誰かがそれを行う方法を知っていますか? :)

4

1 に答える 1

0

トリガー、マクロ、またはその他のコーディングで可能ですが、計算フィールドや重複データをテーブルに格納することは、一般的にデータベースの慣習として不適切です。関連データは、テーブル間のリレーションシップを通じて格納し、テーブルに直接ではなく、クエリに表示する必要があります。

たとえば、各店舗で 1 色の電話しか販売されていない場合、ユーザーはその店舗にのみ入店します。店舗名と電話の色の関係を示す別のテーブルが必要です。次に、ユーザーと電話の色のリストが必要な場合は、ユーザーと電話を購入した場所のテーブル リストを調べ、それを店舗と販売している色のリストに結合するクエリを作成します。

私のアドバイスには 3 つの段階があります。

  • ほぼ確実に最適です。データベースを再設計して、より正規化します。つまり、テーブル間のリレーションシップを使用して、データの重複が不要になるようにします。
  • マクロが必要であると判断した場合、OpenOffice マクロを操作するための優れたリソースは、Andrew Pitonyak の著書OpenOffice Macros Explained (彼の Web サイトから無料でダウンロードできます) です。
  • 多くの場合、SQL トリガーは (マクロと比較して) これを行うためのよりクリーンな方法ですが、基本のデフォルトである古いデータベース エンジンではサポートされていません。(Base 自体は、クエリ、フォーム、およびレポートのみを処理します。テーブルは別のソフトウェアによって処理されます。デフォルトでは、HyperSQL Database または Base 内に「埋め込まれている」HSQLDB の古いバージョン 1.8 です。)新しいものにアップグレードする必要があります。データベース ソフトウェア。HSQLDB 2.3 へのアップグレード手順は、次のスレッドにあります: [チュートリアル] 「組み込み HSQL データベース」の分割
于 2015-08-05T16:05:58.923 に答える