2

私はWebアプリケーションに取り組んでいます。その主な機能は、ユーザーにデータを表示することです。ただし、これらのデータにはいくつかの種類があり、それぞれを異なる方法で提示する必要があります。

たとえば、9つの結果(3冊の本、3人の著者、3つのファイル)をリストする必要があります。

本は(char)TITLE、(text)DESCRIPTIONで記述されています。

著者は(char)TITLE、(char)DESCRIPTIONで記述されています。

ファイルは(char)URLで記述されています。

さらに、すべてのタイプにはID、DATE、VIEWSなどのフィールドがあります。本と著者は単純なHTMLコードで表示され、ファイルはWebサイトに埋め込まれた外部リーダーを使用します。

3つの異なるテーブルを作成してこれらのデータを取得するときにJOINを使用する必要がありますか、それとも1つのテーブルを作成してすべてのタイプをそこに格納する必要がありますか?どちらの態度がより効率的ですか?

追加情報-本当に膨大な量のレコードがあります。

4

3 に答える 3

4

これを行う論理的な方法は、物事を分離しておくことです。これは、データベース設計の3NFルールに従います。これにより、特に大量のデータがある場合に、さまざまな種類の結果を取得する際の柔軟性が高まります。すべてを1つのテーブルに入れることは、DBの慣例としては絶対に悪いことです。

于 2012-07-20T11:33:47.280 に答える
1

それはあなたのデータの構造に依存します。

1対1の関係がある場合、たとえば1冊の本に1人の著者がいる場合は、レコードを1行に配置できます。1冊の本に複数の著者がいる場合、または1人の著者に複数の本がある場合は、別々のテーブルを設定しbooks、両方の外部キーがauthorsあるテーブルにそれらをリンクする必要があります。author_has_booksこのようにして、重複データを保存せず、不整合を回避します。

dbの正規化の詳細については、こちらをご覧ください。

http://en.wikipedia.org/wiki/Database_normalization

于 2012-07-20T11:39:10.687 に答える
0

それらを分離し、関係を作成します。そうすれば、大量のデータを取得し始めると、一度に呼び出すフィールドは7つではなく3つ(つまり、本を見ているだけの場合)であるため、パフォーマンスが向上することに気付くでしょう。

于 2012-07-20T11:41:03.210 に答える