NelsonBN Posted February 17, 2012 at 02:02 PM Report Share #440061 Posted February 17, 2012 at 02:02 PM 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 More sharing options...
HappyHippyHippo Posted February 17, 2012 at 02:48 PM Report Share #440072 Posted February 17, 2012 at 02:48 PM uma solução é tornar as tabelas "computador" e "impressoras" a mesma tabelas : "produtos" deste modo tens o problema resolvido IRC : sim, é algo que ainda existe >> #p@p Portugol Plus Link to comment Share on other sites More sharing options...
NelsonBN Posted February 17, 2012 at 06:46 PM Author Report Share #440106 Posted February 17, 2012 at 06:46 PM 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 More sharing options...
HappyHippyHippo Posted February 17, 2012 at 07:32 PM Report Share #440109 Posted February 17, 2012 at 07:32 PM não tens nas tabelas "computadores" e "impressoras" um campo "IDProduto" ? a relação deveria ser feita desse modo ... IRC : sim, é algo que ainda existe >> #p@p Portugol Plus Link to comment Share on other sites More sharing options...
NelsonBN Posted February 18, 2012 at 12:04 AM Author Report Share #440176 Posted February 18, 2012 at 12:04 AM não tens nas tabelas "computadores" e "impressoras" um campo "IDProduto" ? a relação deveria ser feita desse modo ... pois mas ao fazer dessa forma, não consigo garantir que um determinado IDProduto seja só impressora ou só computador... como referiste agora um IDProduto pode ser os dois ao mesmo tempo.... Link to comment Share on other sites More sharing options...
HappyHippyHippo Posted February 18, 2012 at 09:23 AM Report Share #440194 Posted February 18, 2012 at 09:23 AM 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 Portugol Plus Link to comment Share on other sites More sharing options...
NelsonBN Posted February 18, 2012 at 12:23 PM Author Report Share #440210 Posted February 18, 2012 at 12:23 PM 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 More sharing options...
HappyHippyHippo Posted February 18, 2012 at 12:47 PM Report Share #440219 Posted February 18, 2012 at 12:47 PM de repente ... acho que não ... IRC : sim, é algo que ainda existe >> #p@p Portugol Plus Link to comment Share on other sites More sharing options...
Recommended Posts
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 accountSign in
Already have an account? Sign in here.
Sign In Now