phpMyAdmin
 sql >> Datenbank >  >> Database Tools >> phpMyAdmin

Zusammengesetzte Fremdschlüsselbeschränkung über PhpMyAdmin?

Ich bin gerade auf ein ähnliches Problem beim Einrichten eines zusammengesetzten Fremdschlüssels in phpMyAdmin gestoßen, und vielleicht könnte Ihnen meine Lösung auch helfen.

Hier ist mein Setup:

Wie Sie sehen können, habe ich einen zusammengesetzten Primärschlüssel in meiner ConferenceRoom-Tabelle, von dem ein Teil auch ein Fremdschlüssel zu streetaddress ist in Tabelle Office (dies kann von Ihrem Problem abweichen).

Dieser zusammengesetzte Primärschlüssel soll von einem zusammengesetzten Fremdschlüssel in der Tabelle InstPicture referenziert werden, aber das Problem für mich war, dass phpMyAdmin, obwohl beide als Primärschlüsselindizes definiert wurden, nur auf den name verweisen würde Spalte im ConferenceRoom-Primärschlüssel und nicht die office_streetaddress Spalte.

Was mir hier fehlte, war, dass ich die Beziehung zwischen ConferenceRoom und Office vorher nicht eingerichtet hatte versuchen, die zwischen ConferenceRoom und InstPicture einzurichten. Ich glaube, ich habe vergessen, zuerst die starken Entitäten zu behandeln, wie es die Datenbankmethodik vorschreibt.

Wenn die Beziehung zwischen ConferenceRoom und Office definiert wurde, wird die office_streetaddress -Spalte tauchte in der Liste der indizierten Spalten auf und konnte von conferenceroom_office_streetaddress referenziert werden Spalte in der Tabelle InstPicture.

Ich hoffe, das könnte Ihnen auch helfen, versuchen Sie vielleicht, einen separaten Index für Ihre Log.Service-Spalte zu erstellen. Oder wenn das ein FK ist, richten Sie seine Beziehungen ein und versuchen Sie es erneut.