suchen

Heim  >  Fragen und Antworten  >  Hauptteil

mysql – Einige Probleme mit Label-Tabellen

Ich habe gerade MySQL gelernt und bin mit MySQL nicht vertraut. Jetzt habe ich drei Tabellen wie diese

Artikeltabelle

id Titel Inhalt
0 Hallo Welt
1 hey ....

Frageformular

id Titel Inhalt
0 Hallo Welt
1 hey ....

Tag-Tabelle

id Name Avatar
1 Java ....
2 js ....

Beide Tabellen teilen sich eine Tag-Tabelle. Der Avatar der Tag-Tabelle ist der Avatar des Tags.
Meine aktuelle Frage ist, wie man die Tag-Tabelle mit den anderen beiden Tabellen verknüpft. Es muss sichergestellt werden, dass Artikel oder Themen anhand der Tag-ID schnell gefunden werden können.

Die erste Lösung, die mir einfiel, bestand darin, unterhalb der Artikeltabelle und der Fragentabelle ein Tag-Feld hinzuzufügen. Trennen Sie es durch Kommas (ich weiß nicht, ob es gut ist oder nicht ...), und dann habe ich festgestellt, dass ich wirklich nicht weiß, wie man sucht ... Wie suche ich so ... Benutze ich like? ..

Artikeltabelle

id Titel Inhalt Tags
0 Hallo Welt 0,1
1 hey .... 2,3,4

Frageformular

id Titel Inhalt Tags
0 Hallo Welt 1,4
1 hey .... 6,3

Dann habe ich über den zweiten Plan nachgedacht, da die Strukturen der Artikeltabelle und der Fragentabelle grundsätzlich gleich sind. Kann ich sie zusammenführen

?

Eine Kombination aus Frage und Artikelthema....

id Titel Inhalt Tags Typ
0 Hallo Welt 1,4 Artikel
1 hey .... 6,3 Frage

Dann sollte es meiner Meinung nach nicht zusammengeführt werden, weil die Datenbank nicht so groß ist, wenn ich nur alle Fragen mit der Bezeichnung 1 finden möchte, ist es dann schneller, sie in einer einzigen Tabelle abzufragen?

Dann habe ich über einen dritten Plan nachgedacht. Wie wäre es mit der Erstellung einer Korrelationstabelle? Benötigt diese Korrelationstabelle eine ID? Wenn es eine Korrelationstabelle gibt, wären es dann nicht die Tabellen mit den Artikeln und Fragen anders? Das Feld „Tags“ wird benötigt.

Assoziationstabelle

aq_idtag_id01160413

Diese Abfrage scheint relativ einfach zu sein? Sie kann mit nur einer Select-Anweisung durchgeführt werden und die Abfragegeschwindigkeit ist nicht schlecht ... Aber mit der Zeit wird diese verwandte Tabelle definitiv viele Daten enthalten, und diese Abfrage sollte es auch sein sehr kompliziert sein

Ich hoffe, jemand kann mir ein paar Antworten geben... Vielen Dank im Voraus

世界只因有你世界只因有你2742 Tage vor725

Antworte allen(2)Ich werde antworten

  • 漂亮男人

    漂亮男人2017-05-18 10:51:42

    首先,你给出的文章表和问题表看得我眼花..结构相同就算了吧,数据还相同...
    其次,你一开始相处的解决办法tags是不可取的...很难对tags进行修改,而且就像你说的,很难查询;
    至于文章表和问题表的合并,完全没有必要,这涉及到数据库的设计,可以去了解下数据库的范式;
    最后,关联表的想法就很好,利用aq_id和tag_id也是正确的。至于你说以后可能会有超多的数据,放心吧,且不说mySql不是吃素的,数据多这个问题在你以后的学习当中也会得到解决的

    Antwort
    0
  • 我想大声告诉你

    我想大声告诉你2017-05-18 10:51:42

    你一开始相处的解决办法tags是可以查询的,tags每个数字前后都用符号隔离开,用like查询例如, ,1,11,31,当查询1的时候可以tags like ”%,1,%“。这样应该能查出来。

    Antwort
    0
  • StornierenAntwort