Dúvida com Modelagem de Banco de Dados

Olá galera, bom dia a todos.

Estou fazendo um projeto para a faculdade, cujo qual consiste na criação de uma espécie de database para um jogo de cartas muito famoso, Magic The Gathering, que deterá algumas outras funcionalidades. Enfim, pretendo usar o projeto MTG JSON mas necessito adaptá-lo, e eis que aqui surgiu a dúvida.

A estrutura do JSON é a seguinte:

`{
“name” : “Sen Triplets”,

"manaCost" : "{2}{W}{U}{B}",
"cmc" : 5,
"colors" : ["White", "Blue", "Black"],

"type" : "Legendary Artifact Creature — Human Wizard",
"supertypes" : ["Legendary"],
"types" : ["Artifact", "Creature"],
"subtypes" : ["Human", "Wizard"],

"rarity" : "Mythic Rare",

"text" : "At the beginning of your upkeep, choose target opponent. This turn, that player can't cast spells or activate abilities and plays with his or her hand revealed. You may play cards from that player's hand this turn.",

"flavor" : "They are the masters of your mind.",

"artist" : "Greg Staples",
"number" : "109",

"power" : "3",
"toughness" : "3",

"layout" : "normal",
"multiverseid" : 180607,
"imageName" : "sen triplets",
"id" : "3129aee7f26a4282ce131db7d417b1bc3338c4d4"

}`

E a dúvida é: Quero transpor o campo ‘colors’ numa tabela COLORS (segiundo as regras de normalização), que vai conter 6 cores, a saber: BLUE, WHITE, RED, GREEN, BLACK e INCOLOR. Assim sendo, a ideia seria linkar por meio de um fk o campo com o pk da tabela COLORS, mas como eu faria com o card de exemplo, que possui mais de uma cor?

Aliás, esta abordagem está correta?

Desde já, agradecido!

olha vi algo parecido com isso, não sei se funciona em seu caso.
pois era uma aula sobre digitais.

mas o cara criou uma tabela que continha os 5 dedos.
tinha chave estrangeira e tudo. e na hora de buscar com join ele usava uma clausula para buscar o que não era null.

enfim me amostra como ta criado suas duas tabelas que vão fazer esse trabalho e podemos ver o que posso te ajudar.

1 curtida

Olá Tucupi, bom dia cara! Então, aí está o problema, eu ainda não criei as tabelas justamente por conta desse problema. Por se tratar de um trabalho da faculdade, eu estou ainda modelando o banco conceitualmente. Mas a consiste justamente neste ponto… Assim, se cada carta possuíse apenas uma cor seria fácil: eu faria a tabela CARTA, criando um campo COR do tipo INTEGER; então criaria uma tabela COR com dois campos, COD_COR (minha chave primária, INTEGER) e NOME_COR (VARCHAR2(10)); daí, bastaria usar COD_COR como chave estrangeira no campo COR da tabela CARTA. Mas o meu problema é que este campo COR da tabela CARTA pode assumir mais de um valor, e é o que está me confundindo. Eu pensei em colocar todas as combinações de cores na tabela COR, mas não acredito que seja uma boa abordagem…

Cara, você não vai acreditar… Mas foi realmente muito amadorismo meu (mas também, o que se esperar de um universitário neah? kkkkkkk) Eu não percebi, mas o que eu tenho aqui é um relacionamento do tipo N:M. Eu devo então criar uma terceira tabela, algo tipo CORES_CARTAS, e aqui relaciono o ID da carta com o ID da cor… Pouts, se meus professores vêem isso, me assassinam lol

Mas é aí que está, não é um exercício, daqueles com enunciado, é um problema real, e acho que foi aí que empaquei. É um desafio bastante diferente, pois é você quem tem que criar tudo, enquanto no enunciado as ‘dicas’ estão ali. Mesmo assim, Obrigado pela atenção amigo!