Qual é a diferença técnica em eu criar um relacionamento 1:1 e um relacionamento 1:n, não identificado, no DBDesigner 4?
Digamos que eu faça um relacionamento 1:n, onde A (bdusuarios) relacionaria com B (bdpessoas)
na hora de gerar o sql o DBDesigner ele criaria o sql ex:
CREATE TABLE bdusuarios (
userid INTEGER UNSIGNED NOT NULL AUTO_INCREMENT,
userlogin VARCHAR(50) NULL,
usersenha VARCHAR(200) NULL,
PRIMARY KEY(userid)
);
CREATE TABLE bdpessoas (
pesid INTEGER UNSIGNED NOT NULL AUTO_INCREMENT,
userid INTEGER UNSIGNED NOT NULL,
pesnome VARCHAR(100) NULL,
pesrazaosocial VARCHAR(100) NULL,
pescpfcnpj VARCHAR(17) NULL,
pestipo VARCHAR(1) NULL,
PRIMARY KEY(pesid),
INDEX bdpessoas_FKIndex1(userid),
FOREIGN KEY(userid)
REFERENCES bdusuarios(userid)
ON DELETE NO ACTION
ON UPDATE NO ACTION
);
Até aí blz um relacionamento um para muitos.
Mas eu alterando meu relacionamento no DBDesigner para 1:1, com o mesmo sentido A para B, ele irá gerar o mesmo sql!
Ou seja a diferença do relacionamento só estaria na modelagem, no conceito?
Não seria o mais certo alterar para UNIQUE INDEX bdpessoas_FKIndex1(userid), tornado a chave única?
dessa forma eu não teria duas pessoas com o mesmo login, ou seja 1:1
CREATE TABLE bdpessoas (
pesid INTEGER UNSIGNED NOT NULL AUTO_INCREMENT,
userid INTEGER UNSIGNED NOT NULL,
pesnome VARCHAR(100) NULL,
pesrazaosocial VARCHAR(100) NULL,
pescpfcnpj VARCHAR(17) NULL,
pestipo VARCHAR(1) NULL,
PRIMARY KEY(pesid),
UNIQUE INDEX bdpessoas_FKIndex1(userid),
FOREIGN KEY(userid)
REFERENCES bdusuarios(userid)
ON DELETE NO ACTION
ON UPDATE NO ACTION
);