2011-01-14 4 views
3

Zuerst Entschuldigung mein Englisch ... Ich muss viel Polylinie in einer Datenbank speichern. Es kam mir zu erstellen einen Tisch Aufruf "Punkte" und speichern Sie alle Punkte von jeder Polylinie. Eine andere Sache, die mir aufgefallen ist Serialisierung (mit php) die Polilynes und speichern in einer einzigen Zeile jeder polilyneWie speichern Sie eine Polylinie (Google Maps) besser in einer Datenbank?

Welche Option denkt, sind besser?

Sehr Dank

+1

mysql hat eine räumliche Erweiterung http://dev.mysql.com/doc/refman/5.0/en/spatial-extensions.html, die einen Blick wert sein kann abhängig davon, wie Sie die Daten abfragen – goat

Antwort

0

Erstellen einer Tabelle jeden Punkt einzeln speichern klingt wie viel des Guten und übermäßige Normalisierung, es sei denn, Sie Abfragen über diese Punkte durchführen möchten.

Ich würde sie einfach zu einer Zeichenfolge serialisieren und sie in einem Textfeld speichern.

+1

Abfragen gegen Punkte ist ein ziemlich häufiger Anwendungsfall. – ceejayoz

3

Wenn Sie nicht mit MySQL verheiratet sind, hat PostgreSQL eine PostGIS extension, die geographische Daten verarbeitet, einschließlich Abfragen dagegen.

Wenn Sie auf MySQL eingestellt sind, würde ich es als Punkte tun, so dass Sie gegen einzelne Punkte abfragen können. Serialisierung ist möglicherweise ein wenig effizienter, um die Zeile abzurufen, aber die Abfrage wird ruiniert.

0

Entweder/oder. Sie können das Design mit Ihrer Points-Tabelle normalisieren oder alle Punkte in ein Feld Ihrer Polyline-Tabelle einfügen.

Die erste ist erweiterbar und hat das DB-Modell Ihre Daten genauer. Die zweite würde weniger Lese-/Schreibvorgänge in der Datenbank erfordern und könnte schneller sein, aber Sie müssten die Punkte in Ihrem Code analysieren, und es wäre schwieriger, nach einem bestimmten Punkt zu suchen.

Hängt von Ihrer Anwendung ab. :)

+0

oder unglaublich langsam nach einem bestimmten Punkt zu suchen * O (n * m)? ([Durchschnitt] Anzahl der Punkte in einer Zeile * Anzahl der Zeilen) – sova

0

Erstellen einer Tabelle von Punkten mit einer anderen Beziehung Zuordnung des Satzes zu einer Polylinie/Polygon ist keine schlechte Praxis. Ich habe mehrere 1-off-GIS-Schema mit diesem Ansatz geschrieben. Ja, einige DBs haben räumliche Erweiterungen, aber Sie können eine Menge anderer Arbeit machen, um einfach einzelne Punkte anzupassen, sie zu skalieren, & c.

Es gibt einen Punkt der Normalisierung, ich benutze es.

Verwandte Themen