Base de données SQL pour Magic Cardgame

Pour l'école, je suis en train de créer un site de deckbuilding basé sur Magic the gathering. C'est le projet qui décide si je reçois mon diplôme ou non. À travers le site Web de Deckbrew, j'ai pu get des données comme celles-ci:

[ { "name": "About Face", "id": "about-face", "url": "https://api.deckbrew.com/mtg/cards/about-face", "store_url": "http://store.tcgplayer.com/magic/urzas-legacy/about-face", "types": [ "instant" ], "colors": [ "red" ], "cmc": 1, "cost": "{R}", "text": "Switch target creature's power and toughness until end of turn.", "formats": { "order": "legal", "legacy": "legal", "vintage": "legal" }, "editions": [ { "set": "Urza's Legacy", "rarity": "common", "artist": "Melissa A. Benson", "multiverse_id": 12414, "flavor": "The overconfident are the most vulnerable.", "number": "73", "layout": "normal", "price": { "low": 0, "average": 0, "high": 0 }, "url": "https://api.deckbrew.com/mtg/cards?multiverseid=12414", "image_url": "http://mtgimage.com/multiverseid/12414.jpg", "set_url": "https://api.deckbrew.com/mtg/sets/ULG", "store_url": "http://store.tcgplayer.com/magic/urzas-legacy/about-face" } ] } ] 

Il est évident que c'est au format jSon. J'ai trouvé le moyen de le transformer en objects et la structure du projet est 4-couche MVC avec entity framework et C #, qui fonctionne (un peu) … Le problème est la database. Je travaille dessus depuis 2 mois maintenant et je ne vais pas plus loin. La chose sur laquelle je suis coincé est la database. Je n'ai pas beaucoup vu comment créer des bases de données et c'est là que ça ne va pas. Je ne comprends pas comment build la database. La création elle-même fonctionnerait si je comprenais comment inclure certaines choses …

1) Formats: si la carte est légale dans un format, Formats est rempli avec: "legacy": "legal", "order": "legal", … donc seuls les formats légaux sont inclus.

2) Les types et les colors sont juste des arrays de mots, mais comme je suis très mauvais avec les bases de données, je ne sais même pas comment le comprendre.

3) Les éditions sont quelque chose de complètement différent. C'est un tableau de l'édition d'object qui, je crois, doit avoir sa propre table. Le problème ici est que je pensais que je devais utiliser une key étrangère, mais comme il s'agit d'une série d'éditions, je ne sais pas vraiment comment commencer à le faire non plus.

4) et puis il y a Price: Il a toujours 3 valeurs: low, average et high qui peuvent être 0 s'il n'y a pas de prix connu.

Voilà. Pour moi, cette database est très complexe ou peut-être que je la rends trop complexe. Y a-t-il quelqu'un qui peut m'aider à organiser cette database pour que je puisse continuer mon projet, parce que je suis tellement perdu en ce moment que je pense que je ne serai pas prêt à la fin du mois prochain? sois affreux.

1: Non, vous devriez inclure tout.

2: Tableau avec colors, standard m: n table de binding entre cartographier la table de maps avec la table de colors. Ne sachant pas comment faire am: n relation chose me fait chose que vous avez sauté toutes les classs … c'est fondamental et basique.

3: On dirait que "cardedition" est la table principale en fait, et tout ce qui précède est une table de type maître. Je ne suis pas sûr – je ne fais pas vraiment de magie du tout, donc je manque de ce qu'on appelle la connaissance du domaine. Les maps sont-elles modifiées de sorte que plusieurs éditions existent? Pourquoi est-ce un tableau dans JSON?

3: valeurs magiques, 0,1,2,3. Quelle est la question?

Pour moi cette database est très complexe

La dernière fois que j'avais une database "complexe" devant moi, j'ai dû faire des changements à un peu de db avec 800 tables. C'est complexe. Vous démarrez à partir de rien (ce qui rend les choses plus faciles) et vous avez peut-être une dizaine de tables. Allez pas à pas. Suivez ce que vous avez appris, allez à la 3ème de la 4ème forme normale et allez relationnel.