Esta debería ser una pregunta bastante sencilla, pero no puedo encontrar una respuesta fácil. ¿Cómo se crea una clave externa que también es una clave principal en MySQL? Aquí está mi intento actual:¿Cómo crear una clave externa que también es una clave principal en MySQL?
CREATE TABLE Sale(
sale_id CHAR(40),
PRIMARY KEY(sale_id),
discount DOUBLE,
type VARCHAR(255),
price DOUBLE,
);
CREATE TABLE Normal_Sale(
sale_id CHAR(40),
PRIMARY KEY(sale_id);
);
CREATE TABLE Special_Sale(
sale_id CHAR(40),
PRIMARY KEY(sale_id);
);
¿Qué me falta aquí?
Gracias de antemano.
Este diseño no se ve bien. Para mí, parece que podría agregar un campo a la Venta, que lo marca como Normal o Especial. Esto huele a –
Estás * sobre normalizando * el esquema. Como dice Joe Phillips, existe una solución mucho más simple. Su diseño podría provocar dolores de cabeza ya que los dos estados deberían ser mutuamente excluyentes (ya sean normales o especiales), ¿qué impide que una venta se registre como especial y normal en su esquema? * Código *, dices? Eso es; ese es el dolor de cabeza que no necesitas. –
Estos son solo ejemplos falsos. La pregunta no es una pregunta de diseño, es una pregunta técnica. – user456584