1

私はデータの正規化を調べてきましたが、セットアップしているカードのデータベースにそれを適用する方法がよくわかりません。各カードはセットからのものであり、そのセットにはシンボルがあります。これらの2つのことは、そのセットの各カードで同じになるので、それはそれ自身のテーブルを構成する必要がありますか?セットに関係なく、すべてのカードを1つの大きなテーブルに入れる必要がありますか?

また、シンボルにちなんで名付けられたテーブルに各セットのカードを入れず、セットの名前を列に入れるだけの理由はありますか?

私はこれに慣れていないので、もっと具体的にする必要がある場合、または単に顔を閉める必要がある場合は、私に知らせてください。前もって感謝します。

4

3 に答える 3

2

それはあなたが望む通常の形に依存します。

このようなカードテーブルを考えてみましょう。主キーは次の(Name, Set)とおりです。

Card:
| Name   | Set   | Symbol |
---------------------------
| Card 1 | Set 1 | 1      |
| Card 2 | Set 1 | 1      |
| Card 3 | Set 1 | 1      |
| Card 1 | Set 2 | 2      |
| Card 2 | Set 2 | 2      |

このテーブルは第一正規形(1NF)です。ただし、の値はの値に依存し、主キーの適切なサブセットであるため、第2正規形(2NF)ではありません。SymbolSet(Set)

質問で述べたように、2NFが必要な場合は、別のSetテーブルを作成する必要があります。

Card:
| Name   | Set   |
------------------
| Card 1 | Set 1 |
| Card 2 | Set 1 |
| Card 3 | Set 1 |
| Card 1 | Set 2 |
| Card 2 | Set 2 |

Set:
| Name  | Symbol |
------------------
| Set 1 | 1      |
| Set 2 | 2      |

これらのテーブルは両方とも2NF(および3NF、BCNF、4NF、...)になりました。

質問の2番目の部分に関して、1つのテーブルにすべての列を含める代わりにこれを行う理由は2つあります。

  • 変更を簡単にするため。セットの属性を変更する場合はSet、そのセットのすべてのカードを更新するのではなく、テーブルの1つの行を更新するだけで済みます。
  • データ破損の可能性を減らすため。setとsymbolの間には実際の依存関係がありますが、最初の表はこれを強制していません。これは、同じセットのカードが異なるシンボルを持っている破損状態にデータベースが喜んで入ることを可能にすることを意味します。テーブルの2番目のセットでは、これは発生しません。
于 2012-08-31T15:15:14.030 に答える
1

あなたの問題を理解しているかどうかはよくわかりませんが、データベース化されたTCGをセットアップしたい場合は、すべてのカードと対応する情報を含む1つのテーブルがあります。YGOカードはよく知られているので、これを想定します。

「カード」テーブルには、自動インクリメントの「カードID」、カードの名前、カードの説明、カードのシンボル、効果ID、レベル、攻撃値、防御力があります。価値。それらはすべて「カード関連」です。

セット自体は1:1のテーブルにあり、任意の数のカードをプレーヤーIDにリンクします。

したがって、プレイヤーのテイラーがセットに3つのブルーアイズホワイトドラゴンを持っていると仮定すると、そのテーブルには3つのエントリがあり、すべて同じカード/プレイヤーの組み合わせを持っています...それぞれがカードの1つを表します。

それはあなたが知りたかったことですか?

于 2012-08-31T15:02:32.690 に答える
1

質問も理解できませんが、すべてのカードを1つの大きなテーブルに保管し、セットごとに異なるテーブルに分割しないことをお勧めします。

そのカードを一意に識別するためのID(cardId)が必要です。次に、setIdとsymbolIdを用意します。

その場合、カードテーブルは次のようになります。

CardId、SetId、SymbolId、Description

1、1、2、素晴らしいカード

2、2、2、別のスウィートカード


そのテーブルを巨大にし、任意のセットまたはシンボルのカードを超高速でカウントアップ/分離することができます。次に、SetId1とは何かと2が何であるかを示すルックアップテーブルが必要になります。

于 2012-08-31T15:17:29.050 に答える