Colocar Resposta 
 
Avaliação do Tópico:
  • 1 votos - 5 Média
  • 1
  • 2
  • 3
  • 4
  • 5
Sql (ajuda)
21-11-2011, 12:05
Mensagem: #1
Sql (ajuda)
Bom dia,

Ando a testar umas coisas em sql, no sql server 2008 r2 e tenho um problema.

Ao fazer as relações com as tabelas da-me um erro. Fui pesquisar e penso que é assim, mas se nao for ajudem-me por favor.


create table restaurantes(
cod_restaurante int constraint pkCODrestaurante primary key,
nome varchar(20),
cidade varchar(20),
cod_cidade int constraint relac_01 references cidades(cod_cidade),
cod_empregado int constraint relac_02 references empregados(cod_empregado)
)

create table cidades(
cod_cidade int constraint pkCODcidade primary key,
nome varchar(20),
cod_empregado int constraint relac_03 references empregados(cod_empregado),
cod_restaurante int constraint relac_04 references restaurantes(cod_restaurante)
)

create table empregados(
cod_empregado int constraint pkCODempregado primary key,
nome varchar(20),
data_nascimento date,
cidade varchar(20),
cod_restaurante int constraint relac_05 references restaurantes(cod_restaurante),
sexo varchar(20)
)

cumprimentos,

Article0
Procurar todas as mensagens deste utilizador
Citar esta mensagem numa resposta
21-11-2011, 14:24
Mensagem: #2
RE: Sql (ajuda)
E qual é o erro?
Visitar Website de este utilizador Procurar todas as mensagens deste utilizador
Citar esta mensagem numa resposta
21-11-2011, 14:49
Mensagem: #3
RE: Sql (ajuda)
Diz que a tabelas no que faço as relações nao existem. Posso fazer as relações depois de criar as tabelas? Com o Alter?
Procurar todas as mensagens deste utilizador
Citar esta mensagem numa resposta
21-11-2011, 19:54
Mensagem: #4
RE: Sql (ajuda)
As relações devem ser feitas através do Alter Table, depois de as tabelas estarem criadas.
Visitar Website de este utilizador Procurar todas as mensagens deste utilizador
Citar esta mensagem numa resposta
22-11-2011, 12:47
Mensagem: #5
RE: Sql (ajuda)
Ja consegui resolver. Primeiro criei as tabelas

create table restaurantes(
cod_restaurante int identity primary key,
nome varchar(20),
cidade varchar(20),
cod_cidade int,
cod_empregado int
)



create table cidades(
cod_cidade int identity primary key,
nome varchar(20),
cod_empregado int,
cod_restaurante int,
)



create table empregados(
cod_empregado int identity primary key,
nome varchar(20),
data_nascimento date,
cidade varchar(20),
cod_restaurante int,
sexo varchar(20)
)


E depois crei as relaçóes a parte com um diagrama. Aproveitei essa ferramenta do sql server 2008 r2.

Obrigado pelas ajudas

cumprimentos,

Article0
Procurar todas as mensagens deste utilizador
Citar esta mensagem numa resposta
24-02-2012, 00:39
Mensagem: #6
RE: Sql (ajuda)
Apesar da já teres encontrado uma solução deixo-te outra sugestão.

As relações entre as tabelas pode e deve ser definida a quando da criação das tabelas.

Por exemplo a relação entres esta duas tabelas que forneces-te,

create table restaurantes(
cod_restaurante int constraint pkCODrestaurante primary key,
nome varchar(20),
cidade varchar(20),
cod_cidade int constraint relac_01 references cidades(cod_cidade),
cod_empregado int constraint relac_02 references
empregados(cod_empregado)
)

create table cidades(
cod_cidade int constraint pkCODcidade primary key,
nome varchar(20),
cod_empregado int constraint relac_03 references
empregados(cod_empregado),
cod_restaurante int constraint relac_04 references
restaurantes(cod_restaurante)
)

pode ser feita com a criação de outra tabela que é na verdade uma relação.
Neste caso poderia ser uma tabela com o nome "contem" em que referências as chaves primarias das tabelas "cidades" e "restaurantes" com chaves estrangeiras da tabela "contem".

exemplo:

create table contem(
cod_Cid int not null primary key,
cod_res int not null,
foreign key(cod_Cid) references cidade(cod_cidade),
foreign key(cod_res) references restaurante(cod_restaurante)

)

Fica este exemplo então de com definir as relações, que na minha opinião é a correta.

Espero que te seja útil.
Procurar todas as mensagens deste utilizador
Citar esta mensagem numa resposta
Colocar Resposta 


Saltar Fórum:


Utilizadores a ver este tópico: 2 Visitante(s)