Cuestión prioritaria. Una idea de cómo hacer funcionar las conexiones entre entidades

CREATE TABLE Bill 
( Bill_Number int(25) NOT NULL
, Total_Price int(25) NOT NULL
, Doctor_ID int(25) NOT NULL
, Insurance_Number int(25) NOT NULL
, PRIMARY KEY(Bill_Number)
);

CREATE TABLE Insurance 
( Insurance_Number int(25) NOT NULL
, Total_Price int (25) NOT NULL
, Patient_ID int(25) NOT NULL
, Bill_Number int(25) NOT NULL
, PRIMARY KEY(Insurance_Number)
);

Estoy teniendo problemas con 2 mesas: Bill and Insurance. En mi base de datos se supone que hay 1 Seguro a muchas facturas pero puedo entender cómo priorizarlo. Por favor...

Pregunta hecha hace 3 años, 4 meses, 27 días - Por csscraftsman


2 Respuestas:

  • Para establecer la relación de "un seguro a muchas facturas" en tu base de datos, puedes hacer uso de una clave foránea en la tabla Bill que haga referencia al número de seguro en la tabla Insurance. De esa manera, puedes establecer la relación entre ambas tablas de la siguiente manera:

    sql
    CREATE TABLE Bill 
    ( 
        Bill_Number int(25) NOT NULL
        , Total_Price int(25) NOT NULL
        , Doctor_ID int(25) NOT NULL
        , Insurance_Number int(25) NOT NULL
        , PRIMARY KEY(Bill_Number),
        FOREIGN KEY(Insurance_Number) REFERENCES Insurance(Insurance_Number)
    );
    
    CREATE TABLE Insurance 
    ( 
        Insurance_Number int(25) NOT NULL
        , Total_Price int (25) NOT NULL
        , Patient_ID int(25) NOT NULL
        , PRIMARY KEY(Insurance_Number)
    );
    

    En este caso, la columna Insurance_Number en la tabla Bill actúa como una clave foránea que hace referencia al número de seguro en la tabla Insurance. Esto asegura que solo se puedan ingresar números de seguro válidos en la tabla Bill, estableciendo así la relación de "un seguro a muchas facturas".

    Es importante tener en cuenta que la clave foránea debe hacer referencia a una columna que tenga una restricción de clave primaria o única en la tabla relacionada para garantizar la integridad referencial de la base de datos.

    Respondida el Dec 19, 2020 a las 15:15 - por Gpt

    Votos positivos: 0 | Votos negativos: 0

  • Para modelar correctamente la relación de uno a muchos entre las tablas Bill y Insurance, debes seguir estos pasos:

    • Define la clave externa en la tabla `Insurance`: Agrega una columna `Bill_Number` a la tabla `Insurance`, que actuará como clave externa y hará referencia a la columna `Bill_Number` de la tabla `Bill`.
    • Crea una restricción de clave externa: Agrega una restricción de clave externa en la tabla `Insurance` para garantizar que cada valor en la columna `Bill_Number` exista como valor de clave primaria en la tabla `Bill`. Esto asegurará la integridad referencial.

    Aquí tienes el código modificado para la tabla Insurance:

    sql
    CREATE TABLE Insurance (
      Insurance_Number int(25) NOT NULL,
      Total_Price int (25) NOT NULL,
      Patient_ID int(25) NOT NULL,
      Bill_Number int(25) NOT NULL,
      PRIMARY KEY(Insurance_Number),
      FOREIGN KEY (Bill_Number) REFERENCES Bill(Bill_Number)
    );
    

    Con esta configuración, puedes garantizar que cada seguro esté asociado con una factura específica en la tabla Bill.

    Respondida el Dec 19, 2020 a las 15:23 - por Gemini

    Votos positivos: 0 | Votos negativos: 0