Ich habe gedacht, dass es eine Artikeltabelle gibt und die vom Benutzer eingegebenen Tags nicht kontrolliert werden können. In diesem Fall gibt es keine Möglichkeit, die Tags zu verwalten, wenn ich beispielsweise Tags verwenden möchte, um eine Bedingung zu erstellen Abfrage, es wird nicht funktionieren.
Ich habe gedacht, dass es eine Artikeltabelle gibt und die vom Benutzer eingegebenen Tags nicht kontrolliert werden können. In diesem Fall gibt es keine Möglichkeit, die Tags zu verwalten, wenn ich beispielsweise Tags verwenden möchte, um eine Bedingung zu erstellen Abfrage, es wird nicht funktionieren.
Erstellen Sie eine Tag-Tabelle. Die Tag-Tabelle enthält Tag-ID, Name usw. Erstellen Sie eine Korrelationstabelle, speichern Sie dann ArticleID und TagID und extrahieren Sie dann das Tag, wenn Sie den Artikel eingeben oder crawlen. Stellen Sie zunächst fest, ob die Tag-Tabelle bereits abgerufen wurde. Wenn nicht, aktualisieren Sie sie. Speichern Sie dann die Tag-ID in der Zuordnungstabelle und fügen Sie dann die Artikel-ID hinzu. Wenn die Zeit für eine Aktualisierung gekommen ist, kann sie direkt über die Zuordnungstabelle entnommen werden, sodass sie erfolgreich angezeigt werden kann.
Es gibt drei Hauptparadigmen beim Datenbankdesign:
1 Die Felder in der Datenbank sind atomar und können nicht aufgeteilt werden. Die Tags scheinen konsistent zu sein, aber die Tags haben auch separate Attribute für die Tags. Es ist unpraktisch, wenn die Liste später basierend auf den Tags herausgefiltert werden muss.
<code>CREATE TABLE `user_label` ( `id` int(11) NOT NULL AUTO_INCREMENT, `type` tinyint(1) NOT NULL DEFAULT '0' COMMENT '类型', `lable_name` varchar(255) NOT NULL COMMENT '标签名称', `user_id` int(11) NOT NULL COMMENT '创建者', `create_time` datetime NOT NULL COMMENT '创建时间', PRIMARY KEY (`id`), ) ENGINE=InnoDB AUTO_INCREMENT=9 DEFAULT CHARSET=utf8 COMMENT='标签表';</code>
Das
-Tag wird in einer separaten Datentabelle platziert, und die Post-Datentabelle wird in einem Tag-Feld platziert, getrennt durch |
. Das Zeichen „|“ ist im Tag nicht zulässig.
Erstellen Sie eine Tabelle zum Speichern der Tag-ID. Wenn der Benutzer ein Tag hinzufügt, prüfen Sie, ob das Tag dupliziert ist, und speichern Sie es dann in der Tag-Tabelle die Artikeltabelle
Zwei Tische
Erstellen Sie eine Tag-Tabelle
Eine Artikel-Tag-Zuordnungstabelle, die Felder sind Artikel-ID und Tag-ID
Auf diese Weise müssen Sie bei der Abfrage nur die Artikel-ID abfragen, die dem Tag in der Zuordnungstabelle entspricht.
Dies sollte eine Viele-zu-Viele-Beziehung im Datenbankdesign sein. Legen Sie in der Tag-Artikeltabelle doppelte Primärschlüssel fest, die die IDs der Tag-Tabelle sind Die Artikeltabelle kann manchmal mit der Join-Anweisung direkt herausgefiltert werden. Es gibt eine andere Möglichkeit, Tag-Daten im neuen MySQL5.7 zu speichern falsch, bitte weisen Sie darauf hin. Wenn Sie zufrieden sind, helfen Sie mir bitte. Danke, dass es Ihnen gefällt
Ich denke, @ivanilla hat recht, dieses Tischdesign ist fast brauchbar. Es ist nicht erforderlich, mit mehreren Tabellen verknüpfte Tag-Felder abzufragen, und die Verwendung ist einfach.
Ich hatte zufällig etwas Papier zur Hand, also habe ich ein einfaches E-R-Diagramm gezeichnet
Ich weiß nicht, ob es besser ist, nicht zufällig darauf zu treten. Obwohl meine Antwort ihm nicht direkt bei der Lösung geholfen hat, ist es dennoch eine sehr gute Idee. Idiot, ich habe einen Umweg gemacht, danke