2

私は Core Data を初めて使用し、データ モデルをセットアップする方法を理解しようとしています。データをどのように関連付ける必要があるかを示すために、サンプル テーブルを作成しました。

First Name Last Name Competitor Number Gender Team Competition Game Name     All Time high Competition Scores 
Jon         Doe            1          M  Gamers     January   Donkey Kong       Lvl 5         Level #         1 2 3 4
                                                                                       Trys to complete    1   0 1 3
                                                             Pac Man        8000               game 1   7000      
                                                                                              game 2   8500      
                                                                                              game 3   9000      
                                                       March  Donkey Kong         Lvl 5        Level #        
                                                                                             trys        
                                                             Pac Man                         Game 1        
                                                                                              Game 2        
                                                                                              Game 3        
     Bob        Smith       2              M Players   January    Asteroids        34000            Game 1    30000      
                                                                                              Game 2   20000      
                                                                                              Game 3   10000      
                                                              Pac Man          7000           Game 1       5000      
                                                                                              Game 2    4500      
                                                                                              Game 3    7000  

私が読んだことから、プレーヤー、コンペティション、ゲーム名のエンティティが必要だと思います。プレーヤーと競技会と gameNames の間の対多関係、および gameNames と競技会の間の関係。

そして、選手の名前、姓、競技者番号、性別、チームの属性。コンペティションの属性は月 (または名前) になり、GameName の属性は名前になります。

そして、個々のプレーヤーに関連付ける必要があり、プレーヤーはゲームごとに異なるハイスコアを持つため、史上最高値が GameName の属性であるべきかどうかわかりません。ドンキーコングのようなゲームの試行回数と最高レベルを追跡できるようにする必要があるため、game1、game2、game3 の属性を作成しますか? しかし、パックマンのような他のゲームでは、最終スコアしか気にしません。では、game1、game2、game3 はプレイヤーまたはゲームの属性でしょうか? それともそれ自体がエンティティ全体であるべきですか?

助けてくれてありがとう。

4

1 に答える 1

0

あなたの特定の質問については:

では、game1、game2、game3 の属性を作成しますか? しかし、パックマンのような他のゲームでは、最終スコアしか気にしません。では、game1、game2、game3 はプレイヤーまたはゲームの属性でしょうか? それともそれ自体がエンティティ全体であるべきですか?

Games というオブジェクト クラスを作成し、必要な属性 (ハイスコア、最高レベルなど) を与えることをお勧めします。

ゲームの種類が異なる場合は、次の 2 つの選択肢があります。

  1. ルート Game-Class にすべての共通属性が含まれ、子孫にそれらの詳細が含まれるゲームの階層を作成します。

  2. タイプ間のバリエーションが複雑すぎず、多すぎない場合は、属性を 1 つのクラスにまとめて、必要なタイプに使用します。

したがって、あなたの場合、最初にどのゲームに必要な属性を構造化された方法で書き留めてから、クラスとサブクラスと属性のオーバーロードと冗長性のどちらかを決定する必要があります。

psこれは実際にはコアデータの問題ではなく、DB設計です。

この構造化が完了すると、すべてがより明確になります...

于 2011-08-10T21:56:27.233 に答える