Heim >Datenbank >MySQL-Tutorial >Wie kann ich NULL-Werte in einer Fremdschlüsselspalte für MySQL-Bildmetadaten zulassen?
Zulassen von NULL-Fremdschlüsseln für MySQL-Bildmetadaten
Ihr vorgeschlagenes Datenbankschema für eine Bildwebsite steht vor einer Herausforderung, wenn es darum geht, mögliche Admin-Flags darzustellen, die damit verbunden sind Bilder. Insbesondere suchen Sie nach einer Möglichkeit, NULL-Werte in der Spalte tblImageFlags.resolutionTypeID zuzulassen, die mit einem Fremdschlüssel für eine andere Tabelle verknüpft ist.
Das Problem:
tblImageFlags .resolutionTypeID stellt eine Fremdschlüsselbeziehung mit der luResolutionTypes-Tabelle in der ResolutionTypeID-Spalte her. Bei der ersten Ausgabe eines Flags verfügt es jedoch möglicherweise nicht über einen logischen Auflösungstyp und erfordert daher einen NULL-Wert. Das NOT NULL-Attribut der Spalte verhindert dies jedoch.
Lösung:
Um NULL-Werte in der Fremdschlüsselspalte zuzulassen, sollten Sie das NOT NULL-Attribut entfernen von tblImageFlags.resolutionTypeID:
<code class="sql">ALTER TABLE tblImageFlags MODIFY COLUMN resolutionTypeID INT UNSIGNED NULL;</code>
Mit dieser Änderung können Sie ResolutionTypeID jetzt NULL zuweisen, wenn ein Flag zum ersten Mal ausgegeben wird, während die Fremdschlüsselbeziehung zur luResolutionTypes-Tabelle beibehalten wird, wenn eine Auflösung bestimmt wird.
Klarstellung der Bonuspunkte:
Im Kontext von Datenbanken ist die richtige Pluralform von „Index“ „Indizes“, nicht „Indizes“. Laut „Modern American Usage“ von Bryan A. Garner ist „Indizes“ der bevorzugte Plural für gewöhnliche Zwecke, während „Indizes“ in technischen Kontexten oder als „Indikatoren“ zulässig sein können.
Das obige ist der detaillierte Inhalt vonWie kann ich NULL-Werte in einer Fremdschlüsselspalte für MySQL-Bildmetadaten zulassen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!