Forum Pplware

Versão Completa: Sql (ajuda)
Está de momento a ver uma versão reduzida do nosso conteúdo. Ver versão completa com o formato adequado.
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
E qual é o erro?
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?
As relações devem ser feitas através do Alter Table, depois de as tabelas estarem criadas.
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
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.
URL's de Referência