2016-03-21 4 views
0

Hier ist das Problem, das ich zu lösen bin versucht:Speichern von Datenstrukturen in SQL-Datenbanken

Ich brauche eine Datenbank zu entwerfen, speichern kann user Daten und post Daten. Unter anderem muss jeder Eintrag in der Benutzertabelle eine Reihe von post Attributen nachverfolgen, die wir als für den Benutzer bestimmt bestimmt haben. Für jeden Beitrag muss ich eine Liste von Attributen speichern, die dem Beitrag zugeordnet sind.

Ich möchte eine verknüpfte Liste verwenden, um post Attribute zu verfolgen und eine Hash-Tabelle, um die Likes eines Benutzers zu verfolgen (Ich werde eine Menge "für jedes Attribut dieses Beitrags machen, überprüfen, ob der Nutzer es mag") ?). Das Problem ist, ich habe keine Ahnung, wie ich diese Datenstrukturen in einer relationalen Tabelle speichern könnte. Ist so etwas überhaupt möglich? Falls nicht, können Sie Vorschläge zu alternativen Implementierungen machen?

Antwort

1

Ich werde speziell über SQL-Datenbanken sprechen, weil ich ein wenig mehr Erfahrung mit ihnen als mit anderen Arten von Datenbanken habe.

Eine SQL-Datenbank hat im Wesentlichen eine Datenstruktur: die Tabelle. Sie wirklich nicht möchten Tabellen verwenden, um verknüpfte Listen oder Hash-Tabellen zu implementieren. Und Sie möchten keine verknüpften Listen oder Hash-Tabellen in einer Datenbank speichern.

Die Befürchtungen, dass Sie eine verknüpfte Liste (unbegrenzten Speicher verwalten?) Oder eine Hash-Tabelle (schnelle Suchen?) Verwenden möchten, wurden bereits von den Entwicklern und Entwicklern der Datenbankmanagementsysteme erledigt.

Sie müssen nur die richtigen Tabellen erstellen. Sie werden feststellen, dass das Erstellen von Tabellen einfach ist, aber das richtige Bauen ist bei weitem nicht einfach. Google ist dein Freund.

+0

Es scheint, als ob meine Optionen für das, was ich in SQL dbs speichern kann, in etwa den primitiven Datentypen entsprechen, z. Ganzzahlen, Gleitkommazahlen, Zeichen. Ich muss sie (intelligent) benutzen und darauf vertrauen, dass die Dinge, die im Hintergrund passieren, dafür sorgen, dass sie schnell gemacht werden? – Adam

+0

Mehr oder weniger. Aber Postgres hat einen [reichen Satz von nativen Datentypen] (http://www.postgresql.org/docs/current/static/datatype.html). –