Ich habe ein Nachrichtensystem, das Standardvorlagen enthält. Zum Beispiel:mysql: die effizienteste Methode, um Parameter mit unbekanntem Typ (string/int) in der Datenbank zu speichern
you won X coins
friend X wants to share the url Y with you
so ändert sich die Anzahl der Parameter in jeder Nachricht/Templat-Typ.
Ich dachte, von 4 Arten von Lösungen das Problem zu beheben:
eine Parameter-Tabelle erstellen und die einzelnen Parameter Typen als String darstellen. Das Problem hier, dass user_ids als Zeichenfolgen dargestellt werden, so dass Joins wahrscheinlich langsamer sein werden. e
Erstellen einer Parametertabelle, die jede Zeile enthält eine Boolean, die angibt, ob der Parameter ein int oder eine Zeichenfolge ist, und 2 andere Spalten ein Typ Text und der andere Typ INT. Hier verschwenden wir also Platz, denn wenn wir einen int-Parameter verwenden, enthält die Zeile eine nicht verwendete String-Zelle.
Um überhaupt keine Parametertabelle zu erstellen, enthält jede Benachrichtigung eine Parameterzeichenfolge, die jeden benötigten Parameter mit einem Trennzeichen
;
enthält. dieser kann die langsamste Lösung sein.Erstellen von zwei verschiedenen Tabellen für jede Zeit von Parametern: notification_param_int und notification_param_string und eine Tabelle, die jeden Parameter in der Benachrichtigung an die relevante Tabelle enthält. Diese Lösung ist möglicherweise langsamer als die Lösung 2, weil ich zuerst prüfen muss, von welcher Tabelle die Informationen abgerufen werden sollen.
Gibt es noch andere Optionen, an die ich nicht gedacht habe? Wenn mir der Platz egal ist, nur über Geschwindigkeit, welche Methode sollte ich nehmen?
Ich bin kein MySQL-Experte, daher kann die Schlussfolgerung jeder Methode falsch sein.
Alle Informationen würden sehr geschätzt werden.
danke!