[opengeodb] OpenGeoDB und Referenzen
Ingo Wiarda
nikomar at gmx.net
Mon Feb 19 22:48:43 CET 2007
Hallo Matthias,
Am Montag 19 Februar 2007 11:09:55 schrieb Matthias Dietrich:
> Das Problem: DBIx::Class benötigt gescheite Referenzen. Diese sind in
> dem aktuellen Schema nicht vorhanden und, soweit ich weiß, fast
> unmöglich zu realisieren (korrigiert mich, wenn ich falsch liege!).
Möchtest du die ganze OpenGeoDB per DBIx::Class abbilden oder nur die
PLZ-Bereiche? Was für Referenzen fehlen dir denn? Ich habe mich vor einiger
Zeit damit beschäftigt und damals angefangen, ein Modul Geo::OpenGeoDB zu
schreiben, das die Abhängigkeiten mit Class::DBI abbildet (wobei ich
mittlerweile auch DBIx::Class verwenden würde).
Über v0.01 ist das nie hinausgekommen, daher kann es natürlich sein, daß ich
deswegen nicht auf die Probleme gestoßen bin, die du vor Augen hast...
Gruß,
Ingo
Als Illustration für eine mögliche Abbildung der Datenbank in Class::DBI:
(das kann in der aktuellen Version der DB natürlich ganz anders aussehen)
package Geo::OpenGeoDB::Locations;
our $VERSION="0.001";
use base qw(Geo::OpenGeoDB::DBI Geo::OpenGeoDB);
use strict;
Geo::OpenGeoDB::Locations->table('geodb_locations');
Geo::OpenGeoDB::Locations->columns( 'Primary' => qw(loc_id) );
Geo::OpenGeoDB::Locations->columns( 'All' => qw(loc_id loc_type) );
Geo::OpenGeoDB::Locations->has_many('hierarchies'
=> 'Geo::OpenGeoDB::Hierarchies', 'loc_id');
Geo::OpenGeoDB::Locations->has_many('textdata'
=> 'Geo::OpenGeoDB::Textdata', 'loc_id');
Geo::OpenGeoDB::Locations->has_many('intdata'
=> 'Geo::OpenGeoDB::Intdata', 'loc_id');
Geo::OpenGeoDB::Locations->has_many('floatdata'
=> 'Geo::OpenGeoDB::Floatdata', 'loc_id');
Geo::OpenGeoDB::Locations->has_many('coordinates'
=> 'Geo::OpenGeoDB::Coordinates', 'loc_id');
1: