0

今計画を立てているので、進行を始める前に、物事を最善の方法で処理していることを確認したいと思います.

製品の構造 (バッグ、ボックスなど) となる「フォーマット」という新しいフィールドを追加する製品テーブルがあります。これには設定値はありません。ユーザーはそのフィールドに好きなように入力できますが、ユーザーが既に入力したすべての形式のドロップダウン リストを表示したいと考えています。

これを行うには 2 つの方法が考えられます。ユーザーが既に入力したすべての形式を取得するための製品テーブルの基本的な SELECT DISTINCT です。または、フォーマットを格納し、製品によってリンクされる別のテーブル。

本能的に SELECT DISTINCT を使用したいと思います。しかし、10 億個の製品の表を想定すると、どの方法が最善でしょうか?

4

3 に答える 3

2

私は 2 番目のオプション (制約を追加する場合は追加のテーブル + 外部キー) を選択すると思います。これは、ボリュームと、たとえば同様の製品フォームをマージする管理を行うことができるためです。

于 2012-05-25T21:50:11.257 に答える
1

すべてを1つのテーブルに保持することにした場合は、列にインデックスを作成します。これにより、ユーザーアプリケーションでリストを作成するための処理が高速化されます。

どちらが最善のアプローチかについては、やや不可知論者です。多くの場合、ユーザーインターフェイスを設計するときは、さまざまなことを試してみたいと思うでしょう。データベースを変更する必要があると、アプリケーションを構築するための創造的なプロセスが妨げられます。

一方、一般に、ユーザーがアプリケーションのドロップダウンボックスから物を選択する場合、これらの「物」は「エンティティ」の優れた例であり、それがテーブルに格納されることを目的としています。

結局のところ、アプリケーションを開発する際に最も便利なことを行うと思います。完成に近づいたら、これらを別のテーブルに保存する方がよいかどうかを検討してください。大きな問題の1つは、現在定義されているユーザーがいない場合でも、使用されているすべての形式を知りたいかどうかです。

于 2012-05-26T01:55:29.960 に答える
0

ユーザーが好きなものを入力できるようにしているので、2番目のオプションを使用します。

新しいテーブルを作成し、そこにすべての新しい「フォーマット」と製品テーブルへのリンクを挿入します。

ユーザーが入力した形式を追加するコードを作成するときは、データベースに等しい値があるかどうかを確認してください。そうすれば、それらを区別する必要もありません。

また、各単語の最初の文字のみを大文字にすることで、一貫性を保ちます。

于 2012-05-25T21:49:52.693 に答える