0

ユーザーが製品をアップロードして互いに販売できる Web サイトを構築しようとしています。

私が現在持っているのは、各カテゴリがデータベース内に独自のテーブルを持つ多数のカテゴリです。列はUserIDProdIDPriceDescriptionなどですが、各カテゴリ テーブルではすべて同じです。

それらをすべて同じテーブルに配置する必要がありますか?現在、ユーザーがすべてのテーブルを検索せずにアップロードされた製品を編集する方法を管理するのが難しいと感じているため、質問します。

4

1 に答える 1

0

適切に設計されたクエリは、数百万行の適切にインデックス付けされたテーブルに対して簡単にクエリを実行でき、クエリ結果が非常に高速です。カテゴリごとに異なるテーブルを用意する必要はありません。

フィルター、並べ替え、または結合する列のテーブルに適切なインデックスがあること、およびクエリを作成するときにインデックスを利用することを確認する必要があります (つまり、インデックス付きフィールドでのみフィルター、並べ替え、または結合し、また、インデックスの使用を禁止するテーブルから派生した値に対してクエリや並べ替えを行っていないことを確認してください)。また、インデックスがメモリに完全に常駐できるように、十分なメモリが割り当てられていることを確認する必要があります。

一般に、スキーマは常にできるだけ単純に保つ必要があります。

  • 同じプロパティを持つオブジェクトに対して別のテーブルを作成しないでください
  • オブジェクトに直接関連するオブジェクトの属性のみをテーブルに追加します (つまり、正規化します)。
  • 適切な外部キー (1 対多の関係の場合) または結合テーブル (多対多の関係) を使用して、オブジェクト間の関係を表現します。
  • 適切なフィールド タイプを使用して、保存する必要があるデータを保存します (たとえば、整数のタイムスタンプや varchar の代わりに、日付には日付/日時フィールドを使用します)。
于 2013-01-18T16:49:52.500 に答える