なぜattribute
があるのですか テーブル ?
属性は列であり、テーブルではありません。
ウェブサイトのリンクからは何もわかりません。
データベースの全体的な考え方は、クエリごとに必要に応じて多くの小さなテーブルを結合することです。そのため、それに慣れる必要があります。確かに、それはあなたにグリッドを与えますが、ヌルのない短くて甘いものです。あなたがやろうとしていることは、テーブルを避けることです。ヌルでいっぱいの巨大なグリッドを1つだけ使用します。
(スニップ)
属性名(列名)の前にテーブル名を付けないでください。これは冗長です。これは、複数のテーブルを使用するSQLの記述を開始するときに明らかになります。次に、テーブル名またはエイリアスを使用して、あいまいな列名のプレフィックスを付けることができます。
例外はPKで、これは完全にレンダリングされ、FKである場合は常にその形式で使用されます。
サイトを閲覧し、SQLに関するいくつかの質問を読んでください。
それを行った後、後で、strength
が必要かどうかを考えることができます およびdefense
type
の属性(列)になります;か否か。など。
コメントへの回答30Nov10
。
すばらしい、あなたはあなたのデータを理解しています。右。これで、属性テーブルがあった理由がわかりました。
-
これらの10の例が代表的なものであることを確認してください、私はそれらを注意深く見ています。
- タイプ:ジェム名:エンバーズパークペンダント...または、NeckMiscellaneousはタイプですか?
- Uniqueは本当のItemTypeですか?私はそうではないと思います
- Action.Display「シーズンオーガナイザーに戻ってください」
-
AttackPower
の属性はどこにありますか およびHitRating
?
。
-
私の製品クラスターの例では、(35,000の)さまざまな種類のアイテムがいくつありますか。その質問を述べる別の方法は、バリエーションがいくつあるかということです。つまり、意味のあることに、3500アイテム÷8属性ではありませんか?
-
item_attributesはなしで変更されますか s / wのリリース(例:新しい
Inner Strength
属性) ? -
アイテムごとに、どの属性が繰り返されているか(複数)。これまでのところ、アクションのみが表示されていますか?
-
これはゲームなので、タイトで非常に高速な、おそらく完全にメモリに常駐するデータベースが必要です。ヌルはありません。 VARはありません。最短のデータ型。何も複製しないでください(繰り返さないでください)。ビット(ブール値)とベクトルに満足していますか?
-
これらの正規表現をSQLに簡単に変換する必要がありますか、それともそれぞれの深刻な皮肉に満足していますか(つまり、SQLで動作させると、かなり安定し、バグを見つけない限り、それを台無しにすることはありません) )(皮肉なし、深刻な質問)?
6.1または、その逆かもしれません。dbはディスクに常駐しています。一度メモリにロードします。ゲームプレイ中にその上で正規表現を実行します。時々ディスクに書き込みます。したがって、正規表現をSQLに変換する必要はありませんか?
これが私が向かっているところのデータモデルですが、これはまったく確実ではありません。それはあなたの答えによって調整されます。明確にするために:
-
6番目の通常の形式は行は主キーと最大で1つの属性で構成されます。
-
私は(6)ではなく(6.1)を描画しました。これは、あなたのデータが、純粋な6NFリレーショナルデータベースが必要であるという私の信念を補強するためです。
-
私の
製品クラスターデータモデル 、EAVよりも優れた例は、6NFであり、DataTypeによって再度正規化され(正規形の意味ではありません)、すでに見たテーブルの数を減らします。 (EAVの人々は通常、1つまたはいくつかの巨大なテーブルに行きます。) -
これはストレート5NFで、6NFの右側に2つのテーブルしかありません。
IDEF1X表記へのリンク リレーショナルモデリング標準に慣れていない人のために。
編集への回答#2 05 Dec 10
1.1。了解しました。
1.2。その場合、IsUniqueはアイテムのインジケーター(ブール値)です。
1.3。アクション。理解します。では、どこに保存しますか?
1.4。 NeckMiscellaneousは、アイテムがNeck
の両方のカテゴリにあることを意味します およびMisc
。 つまり、2つの別々のItem.Name=Emberspark Pendant
、それぞれ異なるカテゴリがあります。
。
2。および5.したがって、高速で高速なメモリ常駐データベースが必要です。だからこそ、私はあなたをGridLandからRelationalLandへと一線を越えて連れて行こうとしているのです。
。
3。わかりました。第5正規形のままで、6NFや製品クラスター(データ型ごとのテーブル)は必要ありません。これまでのところ、Values
すべて整数です。
。
4。さらに見ることができます:Level
、RequiredLevel
、IsUnique
、BindsPickedUp
、BindsEquipped
。
。
5。ビットはブール値です{0| 1}。 (リレーショナル)投影にはベクトルが必要です。後で連絡します。
。
6。わかりました、あなたは説明しました、あなたは正規表現をSQLに翻訳していません。 (Slogはハードレイバーを意味します)。
7。 Category.ParentIdとは何ですか?親カテゴリ ?
。
8。 Attribute.GeneratedId?
データモデル(更新)を評価してください。あなたが持っているものに加えて、私はさらにいくつかの列を持っています。データモデルにわからないことがあれば、具体的な質問をしてください。記法文書を読みましたよね?
Action
があります テーブルとして、ItemAction
Value
を保持する :
Equip: increase attack power by 28
Action.Name
です =Increase attack power by
およびItemAction.Value
=28。