Schrift
Wiki:Tipp zum Debugging: use Data::Dumper; local $Data::Dumper::Useqq = 1; print Dumper \@var;
[thread]12832[/thread]

Class::DBI - zwei Dinge gleichzeitig einfügen

Leser: 1


<< >> 5 Einträge, 1 Seite
pktm
 2008-11-27 09:36
#116648 #116648
User since
2003-08-07
2921 Artikel
BenutzerIn
[Homepage]
user image
Hallo!

Ich arbeite mich gerade in Class::DBI ein, finde das sehr angenehm.

Nun habe ich folgende Problemstellung:
Eine Funktion soll zwei Tabellen befüllen, A und B.
Die eine ist der anderen untergeordnet, d.h. Tabelle B enthält einen Fremdschlüssel aus A. A steht in einer 1:n-Beziehung zu B.

Tabelle A:
- id_a INT
- feldA VARCHAR(45)

Tabelle B:
- id_b INT
- fk_id_a INT
- feldB VARCHAR(45)

Nun kommt da ein Datensatz rein.
Mit plain SQL würde ich wahrscheinlich erst den Datensatz in Tabelle A schreiben, die ID des neuen Datensatzes auslesen, dann den Datensatz in Tabelle B schreiben.

Nun sind die über Class::DBI schon miteinander verknüpft. Kann ich das nicht igrgendwie einfacher machen? So dass ich die API nur einmal anspreche, und da sowas sage wie:
Code: (dl )
MyDBI::TabB->insert({feldB => 'inhalt_b', feld_a => 'inhalt_a'})

und der verknüpft mir das automatisch?

Ist klar, was ich meine? Ich möchte, dass mir der Schritt, erst den Datensatz in TabA erstellen zu müssen, abgenommen wird, wenn ich etwas in TabB schreibe.

Es geht dabei nur um den Fall, dass in TabelleB etwas eingefügt wird, wozu der Schlüssel in TabelleA noch nicht besteht.

Grüße, pktm
http://www.intergastro-service.de (mein erstes CMS :) )
pq
 2008-11-27 11:09
#116653 #116653
User since
2003-08-04
12208 Artikel
Admin1
[Homepage]
user image
gibts nen grund, nicht CPAN:DBIx::Class zu verwenden? da findest du wohl mittlerweile auch
mehr leute, die dir helfen können.
Always code as if the guy who ends up maintaining your code will be a violent psychopath who knows where you live. -- Damian Conway in "Perl Best Practices"
lesen: Wiki:Wie frage ich & perlintro Wiki:brian's Leitfaden für jedes Perl-Problem
pktm
 2008-11-27 13:42
#116662 #116662
User since
2003-08-07
2921 Artikel
BenutzerIn
[Homepage]
user image
pq+2008-11-27 10:09:19--
gibts nen grund, nicht CPAN:DBIx::Class zu verwenden? da findest du wohl mittlerweile auch
mehr leute, die dir helfen können.


Nein, einen richtigen Grund gibt es dafür nicht. Gibt es eine Gegenüberstellung der beiden Bibliotheken? Warum sollte ich eher DBIx::Class verwenden?
http://www.intergastro-service.de (mein erstes CMS :) )
pq
 2008-11-27 14:33
#116663 #116663
User since
2003-08-04
12208 Artikel
Admin1
[Homepage]
user image
ich kenne keine konkreten sachen - DBIx::Class ist ein fork von Class::DBI, und es kann mittlerweile
einfach mehr, auch weil eine grössere community es benutzt und testet; ausserdem ist es glaub ich
effizienter aufgebaut, also ein resultset macht erst wirklich dann ein select, wenn du auf ein ergebnis
zugreifst. viele der grundlagen sind aber gleich.
Always code as if the guy who ends up maintaining your code will be a violent psychopath who knows where you live. -- Damian Conway in "Perl Best Practices"
lesen: Wiki:Wie frage ich & perlintro Wiki:brian's Leitfaden für jedes Perl-Problem
renee
 2008-11-28 08:59
#116676 #116676
User since
2003-08-04
14371 Artikel
ModeratorIn
[Homepage] [default_avatar]
Die Lizenz ist ein großer Vorteil von DBIx::Class ;-)
OTRS-Erweiterungen (http://feature-addons.de/)
Frankfurt Perlmongers (http://frankfurt.pm/)
--

Unterlagen OTRS-Workshop 2012: http://otrs.perl-services.de/workshop.html
Perl-Entwicklung: http://perl-services.de/
<< >> 5 Einträge, 1 Seite



View all threads created 2008-11-27 09:36.