Frage

So habe ich auf InnoDB-Tabellen (Produkte) und (Kategorien). Ich wollte eine Beziehung zwischen dem „Kategorie“ Feld auf der Tabelle Artikel, und die „CategoryId“ der Tabelle Kategorien einrichten.

Aber wenn ein FK zu schaffen versucht, es wird mich nur lassen Sie den Primary Key „ProductsId“ wählen Sie auf der Tabelle Product und Karte mit dem PK „CategoryId“ auf der Tabelle Kategorien.

Vielleicht bin ich dabei den Weg / Grund für das Einrichten eines Fremdschlüssel. Meine Gedanken und mir sagen, wenn ich falsch liege:

1) War ein Produkt zu verlangen, zu einer Kategorie hinzugefügt werden, wenn hinzugefügt, muss die Kategorie vorhanden ist oder Sie müssen es zuerst erstellen. Sie können nicht eine Kategorie entfernen, wenn Sie eine Aufgabe ausführen (programmically oder auf dem DB-Backend), die Produkte aus einer Kategorie entfernen Sie entfernen wollen.

2) Ich hatte erwartet, der CategoryId Wert der Tabelle Artikel in der „Kategorie“ Feld gespeichert werden. Dann, wenn in meiner Ansicht angezeigt wird, müssten die Categories.Name Feld durch den CategoriesId Wert nachzuschlagen.

EDIT: So verstehe ich, dass zwei in dem Fremdschlüssel beteiligten Felder müssen gleich sein, Größe, Arten ... etc. Doch wie die ProductId und CategoryId Arbeit in Zusammenhang macht die Verknüpfung zu dem, was ich oben erwähnte Ich wünsche zu tun. Wenn ich eine FK zwischen ProductId und CategoryId erstellt haben, werde ich mir einen Produktdatensatz nicht zulassen, hinzuzufügen.

Auch die Kategorie Feld Namen und das Produktkategorie Feld vom gleichen Typ ist, size..etc, aber ich habe nicht die Möglichkeit, die in dem Fremdschlüssel Registerkarte auszuwählen?

Wie soll ich es so einstellen werden, bis dass die Tabelle Kategorien werden wissen, welche Produkte Teil jeder Kategorie.

War es hilfreich?

Lösung

Ok, leider muss ich meine eigenen Fragen beantworten. Der Grund für die meisten meiner technischen Probleme ist, weil das Feld, das Sie versuchen, machen „indiziert werden müssen“.

Das comprehesive Problem, das ich hatte war, dass ich brauchte, das eigentlichen „Kategorie“ varchar Feldes auf der Tabelle Artikel zu entfernen, und ein CategoryId Feld erstellen, die nur einen Wert haben würden, die in der Kategorie Tabelle CategoryId Feld vorhanden ist.

Jetzt werde ich nur das Categories.Name Feld durch den Products.CategoryId Wert verweisen müssen.

Mindestens das ist, was ich bin gekommen, um zu verstehen.

Andere Tipps

Wenn Sie auf dem Workbench sind, stellen Sie sicher, dass die Typen, Längen und Eigenschaften beiden Spalten in der FK beteiligt sind gleich.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top