📂
2252819-Trimestre-2
  • 2252819-Trimestre-2
  • git
    • comandos
      • capitulo 2.2
      • capitulo 2.3
      • capitulo 2.5
      • capitulo 2.6
      • capitulo 3.1
      • capitulo 3.2
      • finales
  • Linux
    • comandos-linux
  • Base de datos
    • Bases de datos
      • Diseño de bases de datos
      • Modelo Entidad Relación
      • Tipos de Entidades
      • Tipos de llaves
      • Relaciones
        • Uno a uno
        • Uno a Mucho
        • Muchos a Muchos
      • Normalización de base de datos
Con tecnología de GitBook
En esta página
  • Uno a uno NO IDENTIFICABLE
  • Uno a uno IDENTIFICABLE
  • Uno a Uno recursiva

¿Te fue útil?

  1. Base de datos
  2. Bases de datos
  3. Relaciones

Uno a uno

AnteriorRelacionesSiguienteUno a Mucho

Última actualización hace 4 años

¿Te fue útil?

Uno a uno NO IDENTIFICABLE

CREATE TABLE ejemplo04.pedido (
  numero_pedido SERIAL NOT NULL, 
  fecha_pedido  date NOT NULL, 
  estado        varchar(40) NOT NULL, 
  PRIMARY KEY (numero_pedido));
  
  
CREATE TABLE ejemplo04.factura (
  numero_factura int4 NOT NULL, 
  anio           int4 NOT NULL, 
  fecha_factura  date NOT NULL, 
  forma_pago     varchar(40) NOT NULL, 
  numero_pedido  int4 NOT NULL unique, 
  PRIMARY KEY (numero_factura, 
  anio));
ALTER TABLE ejemplo04.factura ADD CONSTRAINT fk_pedido FOREIGN KEY (numero_pedido) REFERENCES ejemplo04.pedido (numero_pedido);

Uno a uno IDENTIFICABLE

CREATE TABLE cliente
(
    tipo_documento   varchar(20)  NOT NULL,
    numero_documento varchar(50) NOT NULL,
    nombres          varchar(100) NOT NULL,
    apellidos        varchar(100) NOT NULL,
    estado           varchar(20) NOT NULL,
    CONSTRAINT pk_cliente
        PRIMARY KEY (tipo_documento,
                     numero_documento)
);

create table instructor
(
    tipo_documento    varchar(20)  NOT NULL,
    numero_documento  varchar(100) NOT NULL,
    estado_instructor varchar(10)  not null,
    constraint pk_instructor primary key (tipo_documento, numero_documento),
    constraint fk_cliente FOREIGN KEY (tipo_documento, numero_documento) REFERENCES ejemplo04.cliente (tipo_documento, numero_documento)
);

Uno a Uno recursiva

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);

Nota: el código de este diseño es equivalente al siguiente, por tal motivo es mejor usar el siguiente ya que el diseño no tendría lógica.

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):