Die Adreßdatenbank III

 [Vorheriges Kapitel]  [Vorherige Seite]  [Inhaltsverzeichnis]  [Nächste Seite]

AddressManager.om
PROCEDURE Insert(db: Database;
                 address: Addresses.Address) : BOOLEAN;
   (* insert address into db (if it is acceptable,
      otherwise RETURN FALSE) by storing it into
      db.hashByName (accessible by the primary key) and to
      db.hashByPhone and hashByEmail if these fields are
      non-empty and these keys are not yet used
   *)
BEGIN
   IF Hashes.Acceptable(db.hashByName, address) THEN
      Hashes.Insert(db.hashByName, address);
      IF (address.phone # "") &
            Hashes.Acceptable(db.hashByPhone, address) THEN
         Hashes.Insert(db.hashByPhone, address);
      END;
      IF (address.email # "") &
            Hashes.Acceptable(db.hashByEmail, address) THEN
         Hashes.Insert(db.hashByEmail, address);
      END;
      RETURN TRUE
   ELSE
      RETURN FALSE
   END;
END Insert;

*Wenn ein neuer Eintrag hinzukommt, ist er in jeden der assoziativen Arrays einzufügen (soweit jeweils die Schlüssel gegeben sind).
 
*Da Hashes auf die Eindeutigkeit der Schlüssel besteht, kann pro sekundärem Schlüssel jeweils nur ein Eintrag erfolgen.
 

 [Vorheriges Kapitel]  [Vorherige Seite]  [Inhaltsverzeichnis]  [Nächste Seite]
Copyright © 1999 Andreas Borchert, in HTML konvertiert am 29.06.1999