0

私のデータベースには、Book、Series、Author の 3 つのテーブルがあります。

これらはすべて、互いに多対多の関係にあります。

Book - Series: many-to-many
Book - Author: many-to-many
Author - Series: many-to-many

つまり、データベースにさらに 3 つのテーブルを追加する必要があります。

1. tableBookSeries, which will have id, idBook, idSeries
2. tableBookAuthor, which will have id, idBook, idAuthor
3. tableAuthorSeries, which will have id, idAuthor, idSeries

これは、データベースに 6 つのテーブルがあることを意味します。

このデータベースを最適化する方法はありますか? テーブルの数を減らすことはできますか?

4

1 に答える 1

0

私の意見では、著者 - シリーズに直接的な関係はありません。著者は、たまたまシリーズの一部であるかどうかにかかわらず、本のみを書きます。

DB では次のようになります (6 ではなく 5 つのテーブルを使用):

  1. 本 - シリーズ: 多対多 - 正解
  2. 本 - 著者: 多対多 - 正解
  3. 著者 - シリーズ: 多対多 - 不正解 (これを行わないでください)

追加のテーブル:

  1. id、idBook、idSeriesを持つtableBookSeries - 正しい
  2. id、idBook、idAuthorを持つtableBookAuthor - 正しい
  3. id、idAuthor、idSeries を持つ tableAuthorSeries - 不正解 (これを行わないでください)

著者とシリーズの間の接続を避けます。どのシリーズが著者に関連しているかを知る必要がある場合でも、著者の本を検索することで知ることができます。同様に、誰がセリエを書いたかを知るために、関連付けられた本を使用して著者のリストを取得できます。

お役に立てば幸いです

于 2013-03-22T11:15:50.960 に答える