phpbar.de logo

Mailinglisten-Archive

[php] Re: [php] Re: [php] Logische =?iso-8859-1?Q?UND=2DVerkn=FCpfung?=

[php] Re: [php] Re: [php] Logische =?iso-8859-1?Q?UND=2DVerkn=FCpfung?=

Kristian =?iso-8859-1?Q?K=F6hntopp?= kk_(at)_netuse.de
Wed, 01 Dec 1999 13:07:07 +0100


Adi Sieker wrote:
> In der vorgestellten Tabelle könnte man auch
> WHERE beschreibung LIKE "Autos%Lkws%" nehmen oder wie Ulf vorschlug
> WHERE beschreibung LIKE "Autos, Lkws%"  noch schneller und die
> Indexes greifen auch.

Indices greifen hier, um die selektierte Teilmenge auf alle diejenigen Elemente zu verkleinern, die mit "Autos" bzw. "Autos, Lkws" anfangen. Es hängt von der Selektivität des Index ab, ob dies effizient ist, d.h. es nützt gar nichts "Autos%" zu verwenden, wenn JEDER Eintrag (oder auch nur jeder 2. Eintrag) in der genannten Spalte mit "Autos" anfängt.

In jedem Fall bekommt man in so einer Tabelle, die nicht einmal in erster Normalform ist, die üblichen Probleme mit wenig effizienten Update-Anweisungen: Um etwa in allen Einträgen das Merkmal "Autos" auf "Kfz" zu ändern, muß man die gesamte Tabelle auf den Client transferieren, eine Stringoperation durchführen und eine UPDATE-Anweisung pro Element absetzen. In einer normalisierten Tabelle kann man je nach Normalisierungsgrad eine Update-Anweisung über die Suchbegriffe hetzen (
update suchbegriffe set suchbegriff = "Kfz" where suchbegriff = "autos")
oder indem man ein einziges Datum in einer Suchbegriffe LOV (List Of Values) ändert.

Dem Problem der delete- und insert-Paradoxien kommt man erst mit einer weiteren Normalisierung bei, wenn man besagte Suchbegriffe LOV einführt.

Kristian

-- 
Kristian Köhntopp, NetUSE Kommunikationstechnologie GmbH
Siemenswall, D-24107 Kiel, Germany, +49 431 386 436 00
Using PHP3? See our web development library at
http://phplib.netuse.de/ (We have moved! Update your bookmarks!)


php::bar PHP Wiki   -   Listenarchive