Jump to content

Relacionar tabelas...


NelsonBN
 Share

Recommended Posts

Olá boa tarde... estou aqui com uma duvida... e gostaria de saber se alguém me consegue ajudar a arranjar uma solução...

Eu tenho este modelo Entidade Relação e queria-o passar pasa SQL:

http://img23.imageshack.us/img23/7982/duvidat.jpg

Uploaded with ImageShack.us

o modelo relacional ficaria algo assim

Facturas(NrFacturas, etc...)

LinhasFacturas(IDLinha, NrFacturas, IDProduto, etc...)

Produtos(IDProduto, Marca, Modelo, Preço)

Computador(IDComputaodr, Disco, Processador, Memoria, etc...)

Impressora(IDImpressora,Tipo,Nr_Tinteiros, etc...)

então eu queria garantir a correcta relação de todos os dados da minha base de dados, e como tal estava a pensar usar "foreign key"...

mas o meu problema está na tabela produtos... eu queria adicionar dois atributos na tabela produtos (IDSubProduto, TipoProduto)

Produtos(IDProduto, Marca, Modelo, Preço, IDSubProduto, TipoProduto)

e conforme o tipo de produto, eu relacionava a linha correspondente a esse produto com a tabela computador ou impressora...

mas é impossível fazer um "Foreign key" do mesmo atributo para tabelas diferentes, certo?

como posso garantir que para inserir um registo na tabela produtos o valor do campo IDSubProduto tenha que existir na tabela computadores ou impressoras???

agradeço desde já a ajuda...

Link to comment
Share on other sites

uma solução é tornar as tabelas "computador" e "impressoras" a mesma tabelas : "produtos"

deste modo tens o problema resolvido

pois essa era a ultima hipótese que eu queria tomar... porque como se pode ver no modelo entidade relação, campos em comum em abas as tabelas impressoras e computadores, e esses campos ficam na tabela produtos. mas as tabelas impressoras e computadores tem campos diferentes, e como tal queria separar tudo pelas respectivas tabelas....

Link to comment
Share on other sites

o que estou a dizer é que o IDProduto é uma referência para "produto" e não para "computador" ou "impressora"

claro que pode ser para um produto que na sua extensão é um computador ou impressora, mas isso é trabalho da aplicação e não da base de dados ...

ou então tira a coluna IDSubProduto da Tabela "produto" e adiciona uma coluna "IDSubComputador" à tabela "computador" e uma IDSubImpressora" à tabela "impressora"

IRC : sim, é algo que ainda existe >> #p@p
Link to comment
Share on other sites

desculpa lá a minha insistência... ontem depois de alguma pesquisa encontrei uma sintaxe SQL "CREATE ASSERTION"... Depois de ver a funcionalidade dessa sintaxe, quase dei um pulo da cadeira de felicidade (LOLOL)... o pior foi quando tentei por mãos a obra. Nada feito..

corrijam-me se estiver enganado. O "CREATE ASSERTION" não faz parte da linguagem SQL do MySQL? e caso não faça parte, será que existem alguma sintaxe SQL que faça algo muito semelhante?

Link to comment
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
 Share

×
×
  • 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.