mysql - puede - llave foranea phpmyadmin
¿Clave externa de MySQL para permitir NULL? (1)
Estoy reconstruyendo un sitio web de imágenes. El esquema básico es bastante simple MySQL, pero estoy teniendo problemas para tratar de representar posibles indicadores de administración asociados con una imagen ("inapropiado", "con derechos de autor", etc.). Mi noción actual es la siguiente:
tblImages (
imageID INT UNSIGNED NOT NULL AUTO_INCREMENT,
...
);
tblImageFlags (
imageFlagID INT UNSIGNED NOT NULL AUTO_INCREMENT,
imageID INT UNSIGNED NOT NULL,
flagTypeID INT UNSIGNED NOT NULL,
resolutionTypeID INT UNSIGNED NOT NULL,
...
);
luResolutionTypes (
resolutionTypeID INT UNSIGNED NOT NULL AUTO_INCREMENT,
resolutionType VARCHAR(63) NOT NULL,
...
);
(Truncado para facilitar la lectura, una variedad de claves foráneas e índices están en orden, lo juro)
tblImageFlags.flagTypeID
tiene una clave foránea en una tabla de búsqueda de tipos de banderas, y como se puede imaginar, tblImageFlags.resolutionTypeID
debe tener una clave luResolutionTypes.resolutionTypeID
en luResolutionTypes.resolutionTypeID
. El problema es que, cuando se emite una bandera por primera vez, no hay un tipo de resolución lógica (yo declararía que esto es un buen uso de NULL
); sin embargo, si se establece un valor, debe tener una clave externa en la tabla de búsqueda.
No puedo encontrar una solución de sintaxis MySQL para esta situación. ¿Existe? Los mejores finalistas son:
- Agregue un tipo de resolución "no moderada"
- Agregue una entrada
NULL
aluResolutionTypes.resolutionTypeID
(¿esto funcionaría incluso en una columnaAUTO_INCREMENT
?)
Gracias por la visión!
PS Bonus apunta a quien me dice si, en el caso de las bases de datos, son "índices" o "índices".
Seguimiento : gracias a Bill Karwin por señalar lo que resultó ser un error de sintaxis en la estructura de la tabla (¡no configure una columna en NOT NULL
si quiere que permita NULL
!). Y una vez que tenga suficiente karma para darte esos puntos de bonificación, lo haré :)
Puede resolver esto permitiendo NULL
en la columna de clave foránea tblImageFlags.resolutionTypeID
.
PS Bonus apunta a quien me dice si, en el caso de las bases de datos, son "índices" o "índices".
El plural del índice debe ser índices .
De acuerdo con " Modern American Usage " de Bryan A. Garner:
Para propósitos ordinarios, los índices son preferibles en plural, no en índices . ... Sin embargo, los índices , aunque menos pretenciosos que los foros o dogmatas , son pretenciosos. Algunos escritores prefieren índices en contextos técnicos, como en matemáticas y ciencias. Aunque no es el mejor plural para el índice , los índices son permisibles en el sentido de "indicadores". ... Evite el índice singular, una formación inversa de los índices en plural.