8

私は最近、多値フィールドである Access 2007 の新機能を紹介されました。私の第一印象は、1 つのフィールドで複数の値を使用するのは良くないということです。従来、レコードがフィールドに複数の値を持つことを許可したい場合は、別の 2 つのテーブルを作成し、それらを外部キーでリンクしていました。これにより、クエリが簡単になり、重複する値が同じアイテムを参照することが保証されます。リストをセルに保持することは、データベースの目的に違反しているように思えます。

これらのフィールドには、汚いと感じさせない有効な用途はありますか?

4

8 に答える 8

7

見る:

有害と見なされる多値データ型: データ型はどれほど危険なのか?

アクセス プログラム マネージャーである Suraj Poozhiyil と長い話をしました。Suraj も私も、開発者が多値フィールドを使用する必要がないことに心から同意しています。データベースを理解している人は、多対多のリレーションシップを実装する優れた方法を既に持っているため、多値フィールドからメリットを得ることはできません。

したがって、開発者への私の明確で確実なアドバイスは、多値フィールドを使用しないことです。彼らは潜在的な痛みを除いて、私たちに提供するものは何もありません.

于 2009-09-23T13:44:37.543 に答える
5

ここで質問に実際に答えるわけではありませんが、読者は、 MultValued Databasesのアイデアの周りにニッチな業界全体があることに注意してください。

これらのデータベースは、単一の値を持つすべての属性ではなく、値のリストを持つ属性の使用をサポートおよび促進する機能を備えているという点で、リレーショナル データベースとは異なります。

この場合、データベースエンジンは、テーブルの多次元の性質に対応するためにクエリ言語に拡張機能を持っているため (Access はおそらくそうではないと思います)、Access の複数値フィールドと実際には比較できません。しかし、いずれにしても興味深い類似点があります (これまで MultValued データベースについて聞いたことがない人にとっては)。

于 2010-07-08T08:16:20.673 に答える
3

Access 市場の大きな部分は、非開発者ですが、一種の技術的なユーザーです。彼らは正規化の価値を理解していないかもしれませんが、何かを機能させることはできます。簡単なものが必要なだけで、全員が同じことを入力する自由なテキスト フィールドよりも優れています。

さらに学習するにつれて、他のテーブルや外部キーの使用を開始する可能性があります。ただし、多値フィールドで十分な場合もあります。

于 2009-09-22T18:00:25.590 に答える
3

多値フィールドのアイデアは、レポート/インターフェイス オブジェクトの簡単な作成をサポートすることでした。さらに、問題のカテゴリを表示するフォームを作成できます。いくつかの激しい作業を行う代わりに、神は結合を禁じています。保存するのがおそらく簡単でした:

機械、電気

ではなくフィールドの値として

機械 電気

個人的に私はそれが好きではなく、このタイプのフィールドは会計士のような非技術者向けに作成されたと思います :) (冗談です)。真剣に、これを使用しないでください.

これを処理する適切な方法は、結合、重複なし、および列内の複数の値がないことです (とにかく、これはすべて 3nf です)。

これが作成されたもう 1 つの理由は、sharepoint リスト内の複数の値をサポートすることでした。

ジョン

于 2009-09-22T18:01:37.727 に答える
2

複数値を持つフィールドを使用すると、新しいテーブルとリレーションシップを作成する必要がなくなります。

ソーダ --> 種類

ペプシにはレギュラー、ダイエットなどがあると言うだけで、まったく新しいテーブルが必要なのはなぜですか.

多値フィールドに列を指定できるようになれば、テーブルのようになりますが、作業ははるかに少なくなります。

于 2012-11-23T00:04:40.193 に答える
2

Necro-post...スレッドが最初に開始されたときに質問を修正する必要があったと思いますが、編集プロセスは今は行いません。

質問は、「多値フィールドは良いアイデアですか?」です。

本当の質問は、「RDBMS の複数値フィールドは良いアイデアですか?」ということです。

他の人が指摘したように、多値フィールドをサポートする完全な MVDBMS モデルがあります。私はこの分野の専門家であり、30 年以上このモデルを扱ってきました。もちろん、私の意見では、そしてプラットフォームを毎日使用する他の人にとっては良い考えです. そうです、Caché はそれ自体が優れた多次元モデルを備えているだけでなく、MVDBMS モデルもサポートしています。したがって、この点で、質問に対する答えはYESです。

しかし、RDBMS、特に MS ACCESS の場合、RDBMS モデルもそのプラットフォームも本質的に概念をサポートしていないため、答えはほぼ間違いなく NO です。

受け入れられた答えは正しいです、IMO、それは尋ねられた質問に答えるだけでなく、尋ねられることを意図した質問に答えます。しかし、細心の注意を払うために、尋ねられた正確な質問に対して、受け入れられた答えは正しくありません。

本当の答えは、「DBMS プラットフォームがそれをサポートしている場合にのみ良い考えです。MVDBMS およびおそらく他の NoSQL プラットフォームには YES、RDBMS には NO」です。

于 2018-12-14T20:57:18.450 に答える
1

いやだっていうだけだよ!
SQL を学んでいる場合は、正しい方法を学び、テーブルを正規化してください。データベース設計を知っている場合は、適切に行ってください。すべての機能を使用する必要はありません。

于 2009-09-22T18:03:49.080 に答える
0

私は多値フィールドが本当に好きではありません。おそらく、古い PICK/Unidata システムのような他の多値システムとのインターフェースを簡単にするためにそれを行ったのでしょう。この新機能を SQL Server に多用して Access データベースをアップサイジングするのは楽しいに違いありません。

于 2010-09-15T22:11:38.170 に答える