Uno a Mucho

Uno a muchos NO identificable

CREATE TABLE nivel_formacion (
  nivel  varchar(40) NOT NULL, 
  estado varchar(40) NOT NULL, 
  PRIMARY KEY (nivel));


CREATE TABLE programa (
  codigo  varchar(50) NOT NULL, 
  version varchar(40) NOT NULL, 
  nombre  varchar(500) NOT NULL, 
  sigla   varchar(40) NOT NULL, 
  estado  varchar(40) NOT NULL, 
  nivel   varchar(40) NOT NULL, 
  PRIMARY KEY (codigo, 
  version));
ALTER TABLE programa ADD CONSTRAINT fk_nifo_prog FOREIGN KEY (nivel) REFERENCES nivel_formacion (nivel);

Uno a mucho identificable

CREATE TABLE tipo_documento (
  sigla            varchar(10) NOT NULL, 
  nombre_documento varchar(100) NOT NULL UNIQUE, 
  estado           varchar(40) NOT NULL, 
  CONSTRAINT pk_tipo_documento 
    PRIMARY KEY (sigla));
	
	CREATE TABLE cliente (
  numero_documento varchar(50) NOT NULL, 
  sigla            varchar(10) NOT NULL, 
  primer_nombre    varchar(50) NOT NULL, 
  segundo_nombre   varchar(50), 
  primer_apellido  varchar(50) NOT NULL, 
  segundo_apellido varchar(50), 
  login            varchar(50) NOT NULL UNIQUE, 
  CONSTRAINT pk_cliente 
    PRIMARY KEY (numero_documento, 
  sigla));
	ALTER TABLE cliente ADD CONSTRAINT fk_tipo_documento FOREIGN KEY (sigla) REFERENCES tipo_documento (sigla);

Uno a mucho recursiva no identificable

CREATE TABLE categoria (
  numero_categoria SERIAL NOT NULL, 
  categoria_padre  int4 NOT NULL, 
  nombre_categoria varchar(100) NOT NULL, 
  PRIMARY KEY (numero_categoria));
ALTER TABLE categoria ADD CONSTRAINT fk_categoria FOREIGN KEY (categoria_padre) REFERENCES categoria (numero_categoria):

Uno a mucho recursiva identificable

No EXISTE no se puede hacer, genera problemas en el motor

Última actualización