Anzeigen unterschiedlicher Zelleneinträge
Anzeigen unterschiedlicher Zelleneinträge
am 16.12.2005 19:39:27 von Stephan Dreisbach
Hallo,
mir fiel kein besseres Betreff ein :-((
In einem Datensatz befindet sich eine Spalte XY, die je nach Datensatz
mit Krimi, Abenteuer, Liebe usw. gefüllt ist. Die Begriffe kommen
natürlich mehrfach vor.Ich möchte jetzt eine Ausgabe für ein
Formularfeld einer Webseite haben, in der lediglich die verschiedenen
vorkommenden Angaben einmal auftauchen.
Mir fällt nichts anderes ein, als den Inhalt dieser Zelle z.B. mittels
PHP in ein Array einzulesen und dann auszugeben. Gibt es da was
eleganteres?
--
Stephan
Re: Anzeigen unterschiedlicher Zelleneinträge
am 16.12.2005 19:50:55 von Dirk Brosowski
Stephan Dreisbach schrieb:
> Hallo,
> mir fiel kein besseres Betreff ein :-((
> In einem Datensatz befindet sich eine Spalte XY, die je nach Datensatz
> mit Krimi, Abenteuer, Liebe usw. gefüllt ist. Die Begriffe kommen
> natürlich mehrfach vor.Ich möchte jetzt eine Ausgabe für ein
> Formularfeld einer Webseite haben, in der lediglich die verschiedenen
> vorkommenden Angaben einmal auftauchen.
> Mir fällt nichts anderes ein, als den Inhalt dieser Zelle z.B. mittels
> PHP in ein Array einzulesen und dann auszugeben. Gibt es da was
> eleganteres?
SELECT * FROM t WHERE einordnung in ('Krimi','Abenteuer') order by
einordnung
Sowas schwebt dir vor?
Grüße
Dirk
Re: Anzeigen unterschiedlicher Zelleneinträge
am 16.12.2005 20:20:53 von Andreas Kretschmer
Andreas
--
Diese Message wurde erstellt mit freundlicher Unterstützung eines freilau-
fenden Pinguins aus artgerechter Freilandhaltung. Er ist garantiert frei
von Micro$oft'schen Viren. (#97922 http://counter.li.org) GPG 7F4584DA
Was, Sie wissen nicht, wo Kaufbach ist? Hier: N 51.05082°, E 13.56889° ;-)
Re: Anzeigen unterschiedlicher Zelleneinträge
am 16.12.2005 20:29:13 von Helmut Chang
Stephan Dreisbach schrieb:
> Hallo,
> mir fiel kein besseres Betreff ein :-((
> In einem Datensatz befindet sich eine Spalte XY, die je nach Datensatz
> mit Krimi, Abenteuer, Liebe usw. gefüllt ist. Die Begriffe kommen
> natürlich mehrfach vor.Ich möchte jetzt eine Ausgabe für ein
> Formularfeld einer Webseite haben, in der lediglich die verschiedenen
> vorkommenden Angaben einmal auftauchen.
SELECT DISTINCT kategorie FROM buch;
gruss, heli
Re: Anzeigen unterschiedlicher Zelleneinträge
am 16.12.2005 22:59:51 von Stephan Dreisbach
Helmut Chang schrieb:
>Stephan Dreisbach schrieb:
>> Hallo,
>> mir fiel kein besseres Betreff ein :-((
>> In einem Datensatz befindet sich eine Spalte XY, die je nach Datensatz
>> mit Krimi, Abenteuer, Liebe usw. gefüllt ist. Die Begriffe kommen
>> natürlich mehrfach vor.Ich möchte jetzt eine Ausgabe für ein
>> Formularfeld einer Webseite haben, in der lediglich die verschiedenen
>> vorkommenden Angaben einmal auftauchen.
>
>SELECT DISTINCT kategorie FROM buch;
>
Danke, genau das suchte ich.
Re: Anzeigen unterschiedlicher Zelleneinträge
am 19.12.2005 08:49:21 von Fabian Schladitz
Stephan Dreisbach schrieb:
> Helmut Chang schrieb:
>=20
>>Stephan Dreisbach schrieb:
>>
>>>Hallo,
>>>mir fiel kein besseres Betreff ein :-((
>>>In einem Datensatz befindet sich eine Spalte XY, die je nach Datensatz=
>>>mit Krimi, Abenteuer, Liebe usw. gefüllt ist. Die Begriffe kommen
>>>natürlich mehrfach vor.Ich möchte jetzt eine Ausgabe für ein
>>>Formularfeld einer Webseite haben, in der lediglich die verschiedenen
>>>vorkommenden Angaben einmal auftauchen.
>>
>>SELECT DISTINCT kategorie FROM buch;
>>
>=20
> Danke, genau das suchte ich.
>=20
Überleg dir lieber, ob du nicht dein Datenbankdesign reparieren willst.=
=20
Das ist nicht sonderlich normalisiert und damit wohl leider kaputt.
--=20
Gruss,
Fabian
Re: Anzeigen unterschiedlicher Zelleneinträge
am 19.12.2005 09:34:44 von Helmut Chang
Fabian Schladitz schrieb:
>>>> In einem Datensatz befindet sich eine Spalte XY, die je nach Datensatz
>>>> mit Krimi, Abenteuer, Liebe usw. gefüllt ist. Die Begriffe kommen
>>>> natürlich mehrfach vor.
>
> [...]
>
> Überleg dir lieber, ob du nicht dein Datenbankdesign reparieren willst.
> Das ist nicht sonderlich normalisiert und damit wohl leider kaputt.
Prinzipiell gebe ich dir recht, dass es sich hier um eine klassische
1:n-Beziehung handelt. Zumindest so, wie es der OP hat. Evtl. wäre es
sogar eine n:m-Beziehung.
Andererseits habe ich bei meiner Antwort auch bereits darüber
nachgedacht: Es handelt sich um Kategorien. Wenn eine Kategorie eine
Entität darstellt, ist die Bezeichnung bereits der Primärschlüssel, weil
eindeutig. Welche weiteren Attribute würdest du der Kategorie zuordnen?
Ich habe jedenfalls gelernt, dass eine mögliche Entität, die nur aus dem
Primärschlüssel besteht, in der Datenbank nicht als eigene Tabelle zu
halten ist.
gruss, heli
Re: Anzeigen unterschiedlicher Zelleneinträge
am 19.12.2005 10:02:45 von Fabian Schladitz
Helmut Chang schrieb:
> Fabian Schladitz schrieb:
>=20
>>>>> In einem Datensatz befindet sich eine Spalte XY, die je nach Datens=
atz
>>>>> mit Krimi, Abenteuer, Liebe usw. gefüllt ist. Die Begriffe kommen=
>>>>> natürlich mehrfach vor.
>=20
>> Überleg dir lieber, ob du nicht dein Datenbankdesign reparieren=20
>> willst. Das ist nicht sonderlich normalisiert und damit wohl leider=20
>> kaputt.
>=20
> Andererseits habe ich bei meiner Antwort auch bereits darüber=20
> nachgedacht: Es handelt sich um Kategorien. Wenn eine Kategorie eine=20
> Entität darstellt, ist die Bezeichnung bereits der Primärschlüsse=
l, weil=20
> eindeutig. Welche weiteren Attribute würdest du der Kategorie zuordne=
n?=20
> Ich habe jedenfalls gelernt, dass eine mögliche Entität, die nur au=
s dem=20
> Primärschlüssel besteht, in der Datenbank nicht als eigene Tabelle =
zu=20
> halten ist.
Man kann "Überkategorien" erstellen und vermeidet Fehler bei=20
Gruppierungen. Falls die Spalte nicht gerade ENUM ist, kann es durch=20
unterschiedliche Applikationen oder gar Usereingaben zu fehlerhaft=20
geschriebenen Kategorien kommen.
Ich versuche auch solche Sachen auszunormalisieren, da ich nie weiß, wa=
s=20
noch kommt. Und eine View mit der alten Zugriffsweise ist schnell erstell=
t.
--=20
HTH,
Fabian
Re: Anzeigen unterschiedlicher Zelleneinträge
am 19.12.2005 11:52:52 von Helmut Chang
Fabian Schladitz schrieb:
>> Andererseits habe ich bei meiner Antwort auch bereits darüber
>> nachgedacht: Es handelt sich um Kategorien. Wenn eine Kategorie eine
>> Entität darstellt, ist die Bezeichnung bereits der Primärschlüssel,
>> weil eindeutig. Welche weiteren Attribute würdest du der Kategorie
>> zuordnen? Ich habe jedenfalls gelernt, dass eine mögliche Entität, die
>> nur aus dem Primärschlüssel besteht, in der Datenbank nicht als eigene
>> Tabelle zu halten ist.
>
>
> Man kann "Überkategorien" erstellen...
Was meinst du mit "Überkategorien"?
> ...und vermeidet Fehler bei
> Gruppierungen. Falls die Spalte nicht gerade ENUM ist, kann es durch
> unterschiedliche Applikationen oder gar Usereingaben zu fehlerhaft
> geschriebenen Kategorien kommen.
Richtig. Über solche Dinge hab ich auch schon nachgedacht:
Vorteil von ENUM (oder in einem anderen RDBMS, das ENUM nicht kennt,
alternativ mit einem CHECK CONSTRAINT): ich hab nicht eine Tabelle
herumhängen, die eigentlich nur aus einem PK besteht.
Nachteil: eine neue Kategorie bedingt eine ALTER TABLE, das ich aus
einer Applikation heraus nicht gerne zulasse.
> Ich versuche auch solche Sachen auszunormalisieren, da ich nie weiß, was
> noch kommt.
Das beantwortet noch nicht meine implizite Frage nach: "Ist es der
Normlaisieungslehre gemäß, Tabellen zu haben, die nur aus einem PK
bestehen?"
gruss, heli
Re: Anzeigen unterschiedlicher Zelleneinträge
am 19.12.2005 12:01:31 von Fabian Schladitz
Helmut Chang schrieb:
> Fabian Schladitz schrieb:
>=20
>>> Andererseits habe ich bei meiner Antwort auch bereits darüber=20
>>> nachgedacht: Es handelt sich um Kategorien. Wenn eine Kategorie eine =
>>> Entität darstellt, ist die Bezeichnung bereits der Primärschlüs=
sel,=20
>>> weil eindeutig. Welche weiteren Attribute würdest du der Kategorie =
>>> zuordnen? Ich habe jedenfalls gelernt, dass eine mögliche Entität=
,=20
>>> die nur aus dem Primärschlüssel besteht, in der Datenbank nicht a=
ls=20
>>> eigene Tabelle zu halten ist.
>>
>> Man kann "Überkategorien" erstellen...
>=20
> Was meinst du mit "Überkategorien"?
Nahrung
- Fleisch
- Rind
- Geflügel
- Huhn
- Pute
- Dodo
- Frucht
- Äpfel
- Birnen
- Tomaten
- Brot
- Vollkornbrot
- Sonnenblumenkernbrot
>> ...und vermeidet Fehler bei Gruppierungen. Falls die Spalte nicht=20
>> gerade ENUM ist, kann es durch unterschiedliche Applikationen oder gar=
=20
>> Usereingaben zu fehlerhaft geschriebenen Kategorien kommen.
>=20
> Richtig. Über solche Dinge hab ich auch schon nachgedacht:
>=20
> Vorteil von ENUM (oder in einem anderen RDBMS, das ENUM nicht kennt,=20
> alternativ mit einem CHECK CONSTRAINT): ich hab nicht eine Tabelle=20
> herumhängen, die eigentlich nur aus einem PK besteht.
>=20
> Nachteil: eine neue Kategorie bedingt eine ALTER TABLE, das ich aus=20
> einer Applikation heraus nicht gerne zulasse.
Schön, das wir uns einig sind :-)
>> Ich versuche auch solche Sachen auszunormalisieren, da ich nie weiß,=
=20
>> was noch kommt.
>=20
> Das beantwortet noch nicht meine implizite Frage nach: "Ist es der=20
> Normlaisieungslehre gemäß, Tabellen zu haben, die nur aus einem PK =
> bestehen?"
Gute Frage. Klingt nicht unsinnig, solche Tabellen abzulehnen. In=20
Anbedacht der real zu erwartenden Anforderungsänderungen mache ich mir =
aber ganz gern die Mühe, auch solche Sachen noch auszunormalisieren.
Zumal es mir häufig passiert ist, dass man nach einer Umbenennung=20
fragte. Da mache ich nicht gern ein Update auf alle Zeilen - lieber die=20
andere Tabelle ändern.
--=20
HTH,
Fabian
Re: Anzeigen unterschiedlicher Zelleneinträge
am 19.12.2005 13:11:50 von Kai Ruhnau
Helmut Chang wrote:
> Andererseits habe ich bei meiner Antwort auch bereits darüber
> nachgedacht: Es handelt sich um Kategorien. Wenn eine Kategorie eine
> Entität darstellt, ist die Bezeichnung bereits der Primärschlüssel, weil
> eindeutig.
Nicht ganz:
Ich habe Kategorien, die tatsächlich ausschließlich aus einem Primary
Key (und ein paar Standardverwaltungsfeldern wie ein timestamp) bestehen.
Der Grund liegt darin, dass die Bezeichnung mehrsprachig in der
Datenbank abgelegt wird, also nichts mehr übrig bleibt außer dem Primary
Key um die Kategorien zu unterscheiden.
> Welche weiteren Attribute würdest du der Kategorie zuordnen?
Keine.
> Ich habe jedenfalls gelernt, dass eine mögliche Entität, die nur aus dem
> Primärschlüssel besteht, in der Datenbank nicht als eigene Tabelle zu
> halten ist.
Da würde mich dann interessieren, wie man dynamische, mehrsprachige
Kategorien sonst umsetzen kann. Eine Kategorie hat in meinem Fall nur
ihre Existenz als Eigenschaft.
Grüße
Kai