对于学校我正在创建一个基于Magic收集的deckbuilder网站。这是决定我是否获得学位的项目。通过Deckbrew的网站,我能够获得如下数据:
[
{
"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": {
"commander": "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"
}
]
}
]
很明显它是jSon格式的。我已经找到了将其转换为对象的方法,项目的结构是带有实体框架和C#的4层MVC,它正在工作(有点)......问题是数据库。我已经工作了2个月了,我没有进一步。我坚持的是数据库。我还没有看到如何创建数据库及其出错的地方。我不知道如何构建数据库。如果我想出如何包含某些东西,创作本身就会奏效......
1)格式:如果卡片格式合法,格式填写:"遗产":"合法","指挥官":&# 34;合法",......所以只包含合法格式。
2)类型和颜色只是简单的单词阵列,但由于我对数据库非常糟糕,我甚至不知道如何解决这个问题。
3)版本完全不同。它是一个对象版本的数组,我相信它必须有一个自己的表。这里的问题是我认为我需要使用外键,但由于它是一系列版本,我不知道如何开始这样做。
4)然后有价格:它总是有3个值:低,平均和高,如果没有价格,可以是0。
所以在这里你拥有它。对我来说,这个数据库非常复杂,或者说我太复杂了。有没有人可以帮助我组织这个数据库,这样我就可以继续我的项目了,因为我现在迷失了,我觉得我不会在下个月底之前准备好这个。那太糟糕了。
答案 0 :(得分:1)
1:不,你应该包括所有。
2:带有颜色的表,标准m:n在将卡表与颜色表映射之间的绑定表。不知道如何制作一个m:n关系的东西让我跳过所有课程......这是基础和基础。
3:看起来像“cardedition”实际上是主表,之前的一切都是主类型表。不确定 - 我根本不会做魔术,所以我缺乏所谓的领域知识。卡片是否已更改,因此存在多个版本?为什么这是json中的数组?
3:魔法值,0,1,2,3。问题是什么?
对我来说这个数据库非常复杂
我建议你从头开始(让事情变得更容易),并且可能只有10个左右的表。一步一步走。按照你学到的,转到第4个普通形式的第3个并且去关系。