[Cologne-pm] Hash von Hash von Array???
Wolfgang Weisselberg
pl3rofb02 at sneakemail.com
Wed Feb 25 20:59:30 CST 2004
Michael Lamertz wrote 169 lines:
> On Tue, Feb 24, 2004 at 10:18:05PM +0100, Melanie wrote:
> > > Ich sehe Bedarf fuer Perltidy.
> > > http://perltidy.sourceforge.net/
> *gg* Wolfgang spammt 'mal wieder sein Lieblingstool weil er's noch immer
> nicht geschafft hat, Emacs zu auto-indent zu ueberreden. >;->
Michael, setzt dein Emacs auto-indent die '=>' zuverlaessig
untereinander (solange es Sinn macht) und auch noch, nachdem du
einen besonders_langen_key_hinzu => gefuegt hast? Oder wenn es
so aussieht, wie in Melanies Original-code?
Im Uebrigen verwende ich keine Betriebssystem, dass "alles" kann,
aber einen besseren Editor braeuchte, mein Editor hingegen ist in
der Lage, die Wohnung zu putzen. :->
> So macht man aus einer kleinen Support-Applikation ein 800-pfuendiges
> Gorillamonster. Der traurige Weg aller Software die letztendlich
> auch 'mal *benutzt* werden muss.
"Programming is like sex:
one mistake and you have to support it for the rest of your life."
-- Michael Sinz
> Oft brauchst Du beide richtungen, und musst Dich dann entscheiden,
> welche Version oefter benutzt wird, um diese dann entsprechend
> vorzuziehen. Oder Du baust zwei Hashes die Du ueber
> verknuepfungstabellen verbindest.
[...]
> Und schon macht es Sinn ein bischen Datenbank zu lernen.
Jup. Secondary Keys machen Sinn. Aber auch hier zeigt sich
die Staerke einer Datenbank.
TABLE Person
ID Number(10) , unique, primary key
name Varchar2(100)
vorname Varchar2(100)
...
Table Krankheiten
ID Number(10) , unique, primary key
name Varchar2(100)
Table Person_Krankheiten (Person.ID und Krankheiten.ID sind
zusammen der unique primary Key, constraints, so
dass Person_ID als Person.ID und Krankheiten_ID als
Krankheiten.ID existieren muessen)
Person_ID Number(10)
Krankheiten_ID Number(10)
Table Symptome
ID Number(10) , unique, primary key
Name Varchar2(100)
Beschreibung clob [beliebig gross] oder
Varchar2($grosse_zahl)
Table Heilmethoden
ID Number(10) , unique, primary key
Name Varchar2(100)
Beschreibung clob [beliebig gross]
Table Krankheiten_Symptome (vgl. Person_Krankheiten)
Krankheiten_ID Number(10)
Symptome_ID Number(10)
Table Krankheiten_Heilmethoden (vgl. Person_Krankheiten)
Krankheiten_ID Number(10)
Heilmethoden_ID Number(10)
select P.vorname, P.name, K.name
from Person P
, Krankheiten K
, Person_Krankheiten PK
, Krankheiten_Symptome KS
, Symptome S
where S.Name = :SYMPTOM_NAME
and S.ID = KS.Symptome_ID -- Symptome -> Krankheiten
and KS.Krankheiten_ID = PK.Krankheiten_ID -- Krankheiten -> Personen
and PK.Person_ID = P.ID -- Personen selektieren
and PK.Krankheiten_ID = K.ID -- Krankheiten selektieren
sollte, so ich mich nicht vertan habe, dir die Vor- und Nachnamen
sowie die Krankheiten aller Personen nennen, wo die
Krankheiten das Symptom :SYMPTOM_NAME (eine bei der Ausfuehrung
anzugebende Variable) hat.
i.e. "Liste alle Personen, die eine oder mehrere Krankheiten
haben, die das Symptom Streichelsucht haben, zusammen mit allen
ihren Streichelsucht-Krankheiten."
Es fehlt natuerlich noch eine Tabelle Person_Symptome, da
- nicht alle Krankheiten alle Symptome habem
- im Moment nur alle Symptome aller erkannten Krankheiten
genannt werden, nicht aber ungeklaerte Symptome
- und die Staerke des Symptoms nicht definiert wird
Und vielleicht sollte sowohl Person_Krankheiten und
Krankheiten_Symptome noch Informationen ueber Haeufigkeit und
Schwere der Verbindungen erhalten.
> Wenn es nur darum geht, "state" zu sichern, dann kannst Du evtl. auch
> 'was mit "Storable" anfangen.
Und Data::Dumper zum Debuggen in dem Bereich. :-)
> Geht es aber darum Daten auszutauschen,
> dann nimm CSV oder XML. Auch wenn Wolfgang bestimmt gleich wieder nach
> dem Beissholz greift, XML::Simple ist eine nette Moeglichkeit, aus
> Perl-Strukturen XML-Files zu bauen, oder umgekehrt.
Ich muss wohl doch mal schauen, ob ich meinen XMLgenerator
loseisen kann.
-Wolfgang
More information about the Cologne-pm
mailing list