Ich habe eine Produkttabelle mit 100000 Produkten und auch ich habe eine Benutzer-Tabelle mit 5000 Datensätzen. Angenommen, ein Benutzer kann uns Feedback zu einer beliebigen Kombination dieser Produkte geben. Nehmen wir an, er entscheidet sich für den Vergleich der Produkte 1,3,100,200,400,500 und so weiter. (Er kann uns ein anderes Feedback über andere Produkte senden)Speichern eines Arrays in einer Zeichenfolge (Datenbank Experten Frage)
Hier ist meine Frage, ich möchte nur wissen, was ein Experte Datenbank-Designer über diese Situation denken würde, wo die Anzahl der Produkte und Benutzer groß sind. Ein Weg, um diese Bewertungen zu speichern, sind in einer einzigen Zeichenfolge wie: 1 # 5 3 # 4 100 # 5 .... x # y bedeutet, dass er y Sterne zum Produkt mit ID von x gab. Ich kann diesen vote_string zum Beispiel in mein PHP-Skript laden und die Details daraus extrahieren.
So würde die Rating-Tabelle wahrscheinlich diese Struktur haben: id, user_id, vote_string
Ein anderer Weg ist dieses Feedback in dieser Struktur zu speichern:
Abstimmung Tabelle: id, user_id, Datum
vote_details Tabelle: vote_id, product_id, vote ==> (vote_id, products_id) als Primärschlüssel und vote_id ist Fremdschlüssel.
(oder können diese zwei Tabellen können in einer einzigen Tabelle wie id, user_id, product_id, Abstimmung [id, user_id, product_id] als Primärschlüssel komprimiert werden)
ich es sehr leichtes erraten also, in der die Abfrage zweites Design, aber es verbraucht mehr Platz und Zeit für jede Abfrage, auch im Falle des Löschens von Produkten ist es besser, das zweite Design zu verwenden. Was würden Sie tun?
Jede Art von Idee ist geschätzt.
Guter Punkt über Verkettung. und ja, er kann es. Er kann fast viele Rückmeldungen über 1 Produkt im Vergleich zu anderen senden. – EBAG
+1 stimme ich voll und ganz zu. – Halvard