Jump to content
AngeloLopes

Relações em SQL

Recommended Posts

AngeloLopes

Vou tentar explicar o meu erro, muito resumidamente!!

Então eu tenho uma tabela que se chama equipamentos, com uma chave primaria que é o IDEquipamento, tambem tem o ID_TipoEquipamento, e outros mais campos. Eu quero que no campo ID_TipoEquipamentos possa selecionar um equipamento por exemplo pc, impressora, etc, portanto criei uma tabela que se chama Tipo_Equipamento que vai ter a Chave Primaria o IDTipo_Equipamento, e o equipamento, no entanto eu tambem quero poder ver os componentes dos tipos de equipamentos, ou seja criei uma tabela para pc, outra para impressora, e assim adiante.

Com isto tudo gostava de ter uma soluçao que ao ir buscar o ID_TipoEquipamentos na tabela de Equipamentos identificase logo qual seria o tipo de equipamento referido na tabela tipo de equipamentos e assim me mostrase na tabela correspectiva os seus componentes. Entenderam??

Share this post


Link to post
Share on other sites
pmg

Cria uma unica tabela para os componentes todos em vez de várias tabelas para componentes de impressora, pc, etc.

Depois fazes uma ligação de muitos para muitos (possivelmente através duma tabela auxiliar) entre a tabela dos equipamentos e a tabela dos componentes.

Edited by pmg

What have you tried?

Não respondo a dúvidas por PM

A minha bola de cristal está para compor; deve ficar pronta para a semana.

Torna os teus tópicos mais atractivos e legíveis usando a tag CODE para colorir o código!

Share this post


Link to post
Share on other sites
Loira

nao percebi la mt bem.. mas ora bem

tens que pensar assim (exemplos)

UM equipamento tem VARIOS tipos.

UM tipo tem VARIOS equipamentos.

relaçao N para N

quando é de N pa N tens duas opçoes. ou o ID_TIPO vai pa tabela do equipamento E o ID_EQUIPAMENTO vai pa tabela do tipo

ou criar outra tabela por exemplo TIPO_EQUIPAMENTO e metes la os ID's

(os ID's de que falo em ambos os casos sao as PK)

(outras relaçoes - exemplo)

UM equipamento tem SOMENTE UM tipo

UM tipo tem VARIOS equipamentos

relaçao 1-N

o ID_TIPO (tabela do N) vai para a tabela do EUIPAMENTO (tabelo do 1)

(novamente o ID que falo é uma PK)

Edited by Loira

"Hello guys. You don't know me, but I know you. I want to play a game. Here's what happens if you lose"

"Só erra quem produz... Mas só produz quem não tem medo de errar"

irc @Login

NickServ Acesso a Number1 autorizado

Share this post


Link to post
Share on other sites
AngeloLopes

Nao Loira um equipamento so tem um tipo, ou e pc ou e impressora entendes?

Como e que se mete uma imagem do nosso pc aqui ? !

Share this post


Link to post
Share on other sites
Loira

Nao Loira um equipamento so tem um tipo, ou e pc ou e impressora entendes?

dei apenas como exemplo.. e pus as duas opçoes.. ou N - N ou 1 - N

agora ve a que se adpta ao teu caso.. o pensamento e o mesmo..

dei a teoria com um exemplo (que por acaso usei o teu caso como exemplo).. mas nao pus a pratica.. agora o objetivo sera perceberes

1º o que sao as relaçoes.

2º que relaçoes existem

3º como as associar

4º por em pratica.

o 1º ponto tu sabes.

o 2º e o 3º eu expliqueite (agora a perceber cabe a ti)

o 4º mete em pratica o que percebeste :c


"Hello guys. You don't know me, but I know you. I want to play a game. Here's what happens if you lose"

"Só erra quem produz... Mas só produz quem não tem medo de errar"

irc @Login

NickServ Acesso a Number1 autorizado

Share this post


Link to post
Share on other sites
Loira

De nada :D

e ja agora, a img, 1º fazes o upload (eu uso o tinypic por exemplo) e depois tens ai nos munus (aqui da txt) pa por a img clicas la e metes o URL que o tinypic te gera :D


"Hello guys. You don't know me, but I know you. I want to play a game. Here's what happens if you lose"

"Só erra quem produz... Mas só produz quem não tem medo de errar"

irc @Login

NickServ Acesso a Number1 autorizado

Share this post


Link to post
Share on other sites
Loira

thanks

np :D

(e agora depois de perceberes a teoria, se ainda nao conseguires por em pratica, faz ai o upload do teu modelo ER pa agente analisar e te ajudar.. e sempre mais facil com img do que so texto)


"Hello guys. You don't know me, but I know you. I want to play a game. Here's what happens if you lose"

"Só erra quem produz... Mas só produz quem não tem medo de errar"

irc @Login

NickServ Acesso a Number1 autorizado

Share this post


Link to post
Share on other sites
pikax

tens que ter o link exacto da imagem no teu caso seria: http://uploaddeimagens.com.br/images/000/040/913/full/exemplo.jpg

para inserires a imagem, podes usar a tag [ img ]http://uploaddeimagens.com.br/images/000/040/913/full/exemplo.jpg[ /img ]

(sem espacos)

que ficaria assim:

exemplo.jpg

Edited by pikax

Por muito mais que que estude só aprendo uma coisa, que ainda tenho muita coisa para aprender.

A beleza de um código está em decompor problemas complexos em pequenos blocos simples.

"learn how to do it manually first, then use the wizzy tool to save time."

"Kill the baby, don't be afraid of starting all over again. Fail soon, learn fast."

Share this post


Link to post
Share on other sites
AntonioMateus

A tabela Tipo_Equipamentos deve ligar apenas à tabela Equipamentos

As tabelas PC e Impressora deve ter FK (chave estrageira) da tabela Equipamentos

Share this post


Link to post
Share on other sites
Loira

Estame a dizer que nao posso usar este tipo de imagem mas nao sei pq ....

O link e este :

http://uploaddeimagens.com.br/imagens/exemplo-jpg--7

Estou a tentar assim

ora bem, a minha bd e mt identica a isso..o que difere e a forma como queresmo depois implementar o design pode ser necessario mudanças nas tabelas... para começar.. acho que impressora e pc fazes uma distinçao nao necessaria...

componentes: id_componentes, impressora, , memoria, nome_computador, processador, blablabla tudo o resto

o tipo e os equipamentos nao consigo perceber o que sao ai...

se queres por exemplo assim (diferenciar portateis de torres)

tipo: id_tipo, portatil, torre

e depois dizer que o portatil com o nome xpto tem os seguintes componentes, pensas da seguinte forma:

1portatil tem N carateristicas.

mas aquelas caracteristicas especificas sao SO daquele portatil (os outros tem as suas proprias caracteristicas)

ligaçao de 1 - N

como expliquei anteriormente entao o ID do N vai para o 1

ou seja ficaria

componentes: id_componentes (PK), impressora, , memoria, nome_computador, processador, blablabla tudo o resto

tipo: id_tipo(PK), portatil, torre, id_componentes (FK)


"Hello guys. You don't know me, but I know you. I want to play a game. Here's what happens if you lose"

"Só erra quem produz... Mas só produz quem não tem medo de errar"

irc @Login

NickServ Acesso a Number1 autorizado

Share this post


Link to post
Share on other sites
AngeloLopes

Quando tento Ligar o IDTipo ao ID da tabela Tipo_Equipamentos dame este erro :

'Tipo_Equipamentos' table saved successfully

'Equipamentos' table

- Unable to create relationship 'FK_Equipamentos_Tipo_Equipamentos'.

The ALTER TABLE statement conflicted with the FOREIGN KEY constraint "FK_Equipamentos_Tipo_Equipamentos". The conflict occurred in database "GesInf", table "dbo.Tipo_Equipamentos", column 'ID'.

O que sera?

Loira :

O IDTipo é o tipo de equipamentos do genero : Pc, Impressora, etc sao tipos diferentes entendes?

Entao sugeres que junte todos os componentes numa so tabela, mesmo que os tipos sejam diferentes?

Share this post


Link to post
Share on other sites
Loira

eu, se fosse a ti, fazia o seguinte:

1º apagava a BD

2º escrevia as tarefas e via o que precisava (ram, processador, monitor, rato, impressora, antivirus .... )

3º organizava o que precisava (ram, processador é o que? hardware. ok... antivirus o que é? software.. ok... monitor rato impressora é o que? componentes... ok)

4º JA TENS OS "TITULOS" DAS TABELAS.. YEEEEEH (componentes, software, hardware)

5º como quero ligar? FAZ O TEXTO. FAZ A PERGUNTA. (o computador tem o que? hardware software componetnes.. ok entao criar uma nova tabela para interligar todas)

6º JA TENS O NOME DA TABELA DE LIGAÇAO... pensamento: "FUCK YEAH SOU MESMO BOM" (computador - contera todas as PK das tabelas anteriores menciadas)

7º repetir os passos 3, 4, 5, 6 (nao encontraste erros? ok.. avança po passo 8. encontraste erros? entao repete de novo. reve. ate nao encontrares erros nenhuns).

8º passar a BD para o computador.

9º implementar a BD ao programa (so para testes)

10º testes. (funciona? BOA APRENDESTE A FAZER UMA BD... nao funciona? vai para o passo 1)

agora... DO IT.


"Hello guys. You don't know me, but I know you. I want to play a game. Here's what happens if you lose"

"Só erra quem produz... Mas só produz quem não tem medo de errar"

irc @Login

NickServ Acesso a Number1 autorizado

Share this post


Link to post
Share on other sites
Loira

Obrigado vou fazer ;)

se for necessario ajudamos-te. mas , (falando por mim), so ajudarei quando vir o scan do ER feito ah mao... e o pensamento escrito em texto :)


"Hello guys. You don't know me, but I know you. I want to play a game. Here's what happens if you lose"

"Só erra quem produz... Mas só produz quem não tem medo de errar"

irc @Login

NickServ Acesso a Number1 autorizado

Share this post


Link to post
Share on other sites
AngeloLopes

Mas ha uma cena que tu nao tas a entender, tipo eu sei fazer um BD, e se fosse fazer como tu dizes era facil, pq era so para o pc, mas nao e bem isso que eu quero fazer. O que eu quero fazer é:

Ponto numero 1: ter Uma Tabela Equipamentos, onde vou registar um equipamento que pode ser um pc, ou uma impressora, ou uma maquina fotografica, etc

Ponto Numero 2: Nessa tabela Tem ter um campo onde escolho se o equipamento é um pc, ou uma impressora, etc.

Ponto numero 3: E consoante a escolha do utilizador, ir para as defenicoes de hardware, ou software, desse tipo de equipamento.

Porque é estupido meter todas as caracteristicas de hardware de todos os tipos de equipamento numa so tabela, assim o utilizador fica confuso ne? No entanto é a unica solução que eu tenho funcional para ja!!!

Se fosse em programação em c# ja tinha feito era so meter um if no campo e se o utilizador escolhese o tipo pc, so apareciam as configuraçoes do pc! mas na base de dados estame a atrapalhar todo.

Mais simples que isto nao consigo explicar!!!

Share this post


Link to post
Share on other sites
Loira

Ponto numero 1: ter Uma Tabela Equipamentos, onde vou registar um equipamento que pode ser um pc, ou uma impressora, ou uma maquina fotografica, etc

Ponto Numero 2: Nessa tabela Tem ter um campo onde escolho se o equipamento é um pc, ou uma impressora, etc.

Ponto numero 3: E consoante a escolha do utilizador, ir para as defenicoes de hardware, ou software, desse tipo de equipamento.

impressora: id_imp, marca, blabla

maquina: id_maq, marca, bla bla

computador: id_pc, marca, bla bla

tipo: id_imp, id_maq, id_pc

1impressora é 1tipo. mas 1tipo tem N impressoras

o mesmo pos outros dois

como ja disse e repito, EXPLIQUEI COM EXEMPLO as relaçoes em cima. faz o texto e tens tudo dado.

Mais simples que isto nao consigo explicar!!!

mais simples que o #5 post é impossivel explicar!!!

Edited by Loira

"Hello guys. You don't know me, but I know you. I want to play a game. Here's what happens if you lose"

"Só erra quem produz... Mas só produz quem não tem medo de errar"

irc @Login

NickServ Acesso a Number1 autorizado

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.