Anzahl NULL Spalte eines Datensatzes bestimmen?

Anzahl NULL Spalte eines Datensatzes bestimmen?

am 20.06.2007 20:09:59 von Christian Franzen

Hi!

Ich hab mal wieder ein Problem mit SQL. Ich möchte, wie der Topic schon
verrät, von einem bestimmten Datensatz die Anzahl aller NULL Felder
bestimmen. Gibt es für sowas einen direkten Befehl oder muss ich mir da was
eigenes basteln? Bisher mache ich das einfach so das ich den gesamten
Datensatz in PHP lade und dann die NULL Felder zähle, das ist aber natürlich
absolut unelegant, da ja alle Daten in mein PHP Skript übertragen werden
müssen. Da ein solche Datensatz mit alle möglichen JOINS inzwischen fast 200
Felder hat möchte ich das Problem vom MySQL Server direkt lösen lassen und
nur die Anzahl in das PHP Skript übertragen. Wäre super wenn ihr mir ein
paar Ideen geben könntet.

thx Xion

Re: Anzahl NULL Spalte eines Datensatzes bestimmen?

am 20.06.2007 22:16:11 von Andreas Kretschmer

Andreas
--
q: why do so many people take an instant dislike to mysql?
a: it saves time (oicu in #postgresql)
Explaining the concept of referential integrity to a mysql user is like
explaining condoms to a catholic (Shadda in #postgresql)

Re: Anzahl NULL Spalte eines Datensatzes bestimmen?

am 21.06.2007 00:20:54 von Christian Franzen

> Ich seh grad: einklich sollte man da noch eine ID mit einbauen für den
> Datensatz. Aber ich denke, das Prinzip ist klar, oder?

Sowas in der Art habe ich mir auch schon gedacht. Ist aber sehr unschön wenn
ich das für alle 200 Felder machen darf. naja. wenn es nix anders gibt.
Danke dir auf jedenfall schonmal. Vielleicht finde ich ja noch was anderes.

thx Xion

Re: Anzahl NULL Spalte eines Datensatzes bestimmen?

am 21.06.2007 07:41:38 von Andreas Kretschmer

Andreas
--
Andreas Kretschmer
Linux - weil ich es mir wert bin!
GnuPG-ID 0x3FFF606C http://wwwkeys.de.pgp.net
Deutsche PostgreSQL User Group: http://pgug.de

Re: Anzahl NULL Spalte eines Datensatzes bestimmen?

am 21.06.2007 18:37:14 von Christian Franzen

> Bei 200 Feldern würde ich an Deiner Stelle mal das Tabellendesign
> prüfen.

Was hat die Anzahl der Felder mit dem Tabellendesign zu tun. Wenn ich nun
mal sehr viele Daten speichern muss, wie soll ich das machen außer sehr
viele Felder zu benutzen???

mfg Xion

Re: Anzahl NULL Spalte eines Datensatzes bestimmen?

am 21.06.2007 19:27:26 von Andreas Kretschmer

Andreas
--
q: why do so many people take an instant dislike to mysql?
a: it saves time (oicu in #postgresql)
Explaining the concept of referential integrity to a mysql user is like
explaining condoms to a catholic (Shadda in #postgresql)

Re: Anzahl NULL Spalte eines Datensatzes bestimmen?

am 21.06.2007 20:16:19 von Andreas Scherbaum

Christian Franzen wrote:
>> Bei 200 Feldern würde ich an Deiner Stelle mal das Tabellendesign
>> prüfen.
>
> Was hat die Anzahl der Felder mit dem Tabellendesign zu tun. Wenn ich nun
> mal sehr viele Daten speichern muss, wie soll ich das machen außer sehr
> viele Felder zu benutzen???

Irgendjemand sollte dir erklären, das Zeilen nicht gleich Spalten sind.
Relationale Datenbanken kennen für dein Problem eine Lösung: nennt sich
Normalisierung. Als erster Einstieg sei der der Wikipedia Artikel
empfohlen, ist imho recht nett erklärt.


Bye


Btw, dein Quoting ist irgendwie kaputt. Du hast gelöscht, von dem das
Zitat über deinem Text kam.

--
Andreas 'ads' Scherbaum
Failure is not an option. It comes bundled with your Microsoft product.
(Ferenc Mantfeld)

Re: Anzahl NULL Spalte eines Datensatzes bestimmen?

am 22.06.2007 09:26:33 von Dirk Ohme

On 21 Jun., 20:16, Andreas Scherbaum wrote:
> Irgendjemand sollte dir erklären, das Zeilen nicht gleich Spalten sind.
> Relationale Datenbanken kennen für dein Problem eine Lösung: nennt si=
ch
> Normalisierung. Als erster Einstieg sei der der Wikipedia Artikel
> empfohlen, ist imho recht nett erklärt.

Manchmal kann es aus Gründen der Performance sinnvoll sein, man de-
normalisiert die Daten. Wenn Du verschiedene Aspekte einer Sache zum
selben Zeitpunkt brauchst, ist es besser, sie gleichzeitig zu haben,
als zuviele Joins auszuführen. Du musst Dir ja vorstellen, dass die
Daten bei einer Query erstmal gesammelt werden müssen. Wenn Du nur
einen SELECT auf eine Tabelle ohne GROUP BY oder ORDER BY ausführst,
sind keine temporären Tabellen erforderlich. Sobald Du aber GROUP BY,
ORDER BY oder Joins hast, wird eine temporäre Tabelle erzeugt. Wenn Du
das n-mal parallel hast bei x-Datensätzen, wächst das gern mal schnell
an. Dann ist es u.U. performanter, man für einen kleinen SELECT aus,
um eine sortierte Liste der IDs an Treffern zu bekommen und führt dann
einzelne SELECTs auf die eigentlichen Daten aus.

Okay, mittels Stored Procedures kann man das auch recht elegant lösen,
wenn man aus der Stored Procedure zur Laufzeit Daten senden kann, was
auch nicht immer das Fall ist ... (sowas durchbricht das Konzept des
Transaktionsmodells).

Eine weitere Möglichkeit wäre auch, wenn man die anderen Daten in
einem Binärfeld kapseln kann. Wenn sie für die Suche keine Relevanz
besitzen, nur Attribute darstellen, so könnte man sie auch als XML,
vCard oder sonstwas kapselt und bei der Anzeige entsprechend rendern
lassen - für eine Benutzerverwaltung mache ich sowas: Statt alle
Attribute der Personen irgendwo aufzuführen, speichere ich die Daten
als vCard, wobei bestimmte Suchkriterien in einer separaten Such-
Tabelle zeilenweise gespeichert sind, aber eben nicht alle Attribute
der Person. Vorteil: Attribute können dazukommen, ohne dass sich was
am Tabellendesign ändern muss. Und ich kann die Reihenfolge der
Attribute, d.h. den Aufbau der vCard konservieren.

Gruß, Dirk

Re: Anzahl NULL Spalte eines Datensatzes bestimmen?

am 22.06.2007 09:51:27 von Andreas Kretschmer

Andreas
--
Andreas Kretschmer
Linux - weil ich es mir wert bin!
GnuPG-ID 0x3FFF606C http://wwwkeys.de.pgp.net
Deutsche PostgreSQL User Group: http://pgug.de

Re: Anzahl NULL Spalte eines Datensatzes bestimmen?

am 22.06.2007 10:45:33 von Axel Schwenke

Dirk Ohme wrote:
> On 21 Jun., 20:16, Andreas Scherbaum wrote:
>> Irgendjemand sollte dir erklären, das Zeilen nicht gleich Spalten sind.
>> Relationale Datenbanken kennen für dein Problem eine Lösung: nennt sich
>> Normalisierung. Als erster Einstieg sei der der Wikipedia Artikel
>> empfohlen, ist imho recht nett erklärt.
>
> Manchmal kann es aus Gründen der Performance sinnvoll sein, man de-
> normalisiert die Daten.

Es kann manchmal auch sinnvoll sein, sich ein Loch ins Knie zu bohren
und lauwarme Milch reinzugießen. Aber im Normalfall wird es für Knie,
Bohrmaschine und Milch sinnvollere Anwendungen geben.

> Wenn Du verschiedene Aspekte einer Sache zum
> selben Zeitpunkt brauchst, ist es besser, sie gleichzeitig zu haben,
> als zuviele Joins auszuführen.

Das kommt im Zweifelsfall auf die verwendete Definition von "besser"
an. In diesem Fall - der Bestimmung der Anzahl assoziierter NULLs -
ist Normalisierung anscheinend besser. Genau wissen wir das nicht,
weil der OP nicht genug über sein Problem sagt, um einschätzen zu
können ob sein Datenmodell normal ist.


XL

Re: Anzahl NULL Spalte eines Datensatzes bestimmen?

am 22.06.2007 12:23:06 von Andreas Scherbaum

Dirk Ohme wrote:
> On 21 Jun., 20:16, Andreas Scherbaum wrote:
>> Irgendjemand sollte dir erklären, das Zeilen nicht gleich Spalten sind.
>> Relationale Datenbanken kennen für dein Problem eine Lösung: nennt sich
>> Normalisierung. Als erster Einstieg sei der der Wikipedia Artikel
>> empfohlen, ist imho recht nett erklärt.
>
> Manchmal kann es aus Gründen der Performance sinnvoll sein, man de-
> normalisiert die Daten.

Manchmal, aber wirklich nur manchmal.
In diesem Fall sieht es imho so aus, als würde Normalisierung das Problem
des OP lösen.


> Eine weitere Möglichkeit wäre auch, wenn man die anderen Daten in
> einem Binärfeld kapseln kann. Wenn sie für die Suche keine Relevanz
> besitzen, nur Attribute darstellen, so könnte man sie auch als XML,
> vCard oder sonstwas kapselt und bei der Anzeige entsprechend rendern
> lassen - für eine Benutzerverwaltung mache ich sowas: Statt alle
> Attribute der Personen irgendwo aufzuführen, speichere ich die Daten
> als vCard, wobei bestimmte Suchkriterien in einer separaten Such-
> Tabelle zeilenweise gespeichert sind, aber eben nicht alle Attribute
> der Person. Vorteil: Attribute können dazukommen, ohne dass sich was
> am Tabellendesign ändern muss. Und ich kann die Reihenfolge der
> Attribute, d.h. den Aufbau der vCard konservieren.

Noch mal für mich zum Mitschreiben: du speicherst alle Daten in einer
vcard, zusätzlich noch mal einige Daten extern? Sag mir bitte, das ich
das nicht richtig interpretiert habe.


Bye

--
Andreas 'ads' Scherbaum
Failure is not an option. It comes bundled with your Microsoft product.
(Ferenc Mantfeld)

Re: Anzahl NULL Spalte eines Datensatzes bestimmen?

am 22.06.2007 16:34:46 von Dirk Ohme

Axel Schwenke schrieb im Newsbeitrag
> Es kann manchmal auch sinnvoll sein, sich ein Loch ins Knie
> zu bohren und lauwarme Milch reinzugießen. Aber im Normalfall
> wird es für Knie, Bohrmaschine und Milch sinnvollere
> Anwendungen geben.

Ich kenn' das von einer DTP-Lösung für Adobe InDesign so ... alles
schön flach in einer Tabelle ... dafür war's 'ne Lösung, die sich auch
an ein bestehendes Warenwirtschaftsystem anbinden ließ und nicht sein
eigenes mitlieferte ;-)

Gruß, Dirk

Re: Anzahl NULL Spalte eines Datensatzes bestimmen?

am 22.06.2007 18:22:08 von Christian Franzen

> Bei 200 Feldern besteht nunmal der vage Verdacht auf ein kapottes
> Design. Zum Bleistift, Du willst damit Rechnungen speichern und
> reservierst pi mal Daumen 150 Felder für 150 Positionen...

Sorry aber du weißt doch gar nix von meinem Datenmodell und nur weil ich
heir eine Frage stellen behandelst du mich als ob ich ein totaler Vollidiot
bin. Ich hab lange genung mit realtionalen Datenbaken gearbeitet um zu
wissen wie ich ein "halbwegs" normales Datenbank modell erstelle. Die 200
Felder kommen zustanden weil ich ganz einfach mit insgesamt 16 JOINS alle
Tabellen meiner Datenbank verbinde. Warum ich das mache ist im Prinzip
sch*** egal und da ich diese Abfrage vielleicht 2 mal im Monat ausführe habe
ich da auch keinen Performanzbedenken (bevor jetzt damit wieder einer
anfängt).
Beim nächsten mal vielleicht einfach mal mehr Infos anfordern bevor du hier
so einen Mist verzapfst!!!

mfg Xion

Re: Anzahl NULL Spalte eines Datensatzes bestimmen?

am 22.06.2007 20:02:33 von Dominik Echterbruch

Christian Franzen schrieb:
>> Bei 200 Feldern besteht nunmal der vage Verdacht auf ein kapottes
>> Design. Zum Bleistift, Du willst damit Rechnungen speichern und
>> reservierst pi mal Daumen 150 Felder f�r 150 Positionen...
>
[Hasstirade]

Ruhig Brauner! Andreas hat lediglich VERMUTET, daß es sich um ein
defektes Design handeln KÖNNTE. Niemand hat dich angegriffen. Was soll
also diese Reaktion? Selbstverständlich kann dein Design defekt sein.
Und genauso selbstverständlich können die 200 Spalten in einer komplexen
Abfrage tatsächlich auftauchen.

Statt hier so einen Terz zu machen und wirklich hilfsbereite Leute
völlig grundlos anzugreifen, solltest du dir lieber mal seine zwei
Lösungsvorschläge mal durch den Kopf gehen lassen, die er dir aus purer
Freundlichkeit gleich mitgeliefert hat. Sollte das nicht geschehen,
wirst du hier sehr bald keine brauchbaren Antworten auf deine Fragen
mehr bekommen.

Denk auch bitte immer daran, daß hier Leute antworten, die keinerlei
Interesse an deinem Geld haben. Die geben dir freiwillig und in ihrer
Freizeit Antworten auf deine Fragen. Wenn du dafür jemanden dumm
anmachen möchtest, kauf dir bei MySQL den Support!

Und nicht zuletzt: Was ist dagegen einzuwenden, wenn man dir
Alternativen aufzeigt, die ggfs. dein Problem direkt eliminieren? Oder
bist du der SQL-Gott schlechthin? In dem Fall würde ich mich allerdings
fragen, was du hier willst.

Also, dann schreib mal ein bißchen mehr über dein Datenmodell und was
dein eigentliches Problem ist. Dann schauen wir mal, ob wir gemeinsam
nicht doch noch eine saubere,elegante, schnelle und einfache Lösung finden.

Grüße,
Dominik
--
Wo kämen wir denn hin, wenn jeder sagen würde wo kämen wir denn hin,
aber niemand gehen würde um zu sehen, wohin wir kämen, wenn wir gingen?
(Autor unbekannt)

Re: Anzahl NULL Spalte eines Datensatzes bestimmen?

am 23.06.2007 08:33:59 von Andreas Kretschmer

Andreas
--
q: why do so many people take an instant dislike to mysql?
a: it saves time (oicu in #postgresql)
Explaining the concept of referential integrity to a mysql user is like
explaining condoms to a catholic (Shadda in #postgresql)

Re: Anzahl NULL Spalte eines Datensatzes bestimmen?

am 23.06.2007 09:03:56 von Dirk Ohme

Andreas Scherbaum schrieb im Newsbeitrag
> Noch mal für mich zum Mitschreiben: du speicherst alle
> Daten in einer vcard, zusätzlich noch mal einige Daten
> extern? Sag mir bitte, das ich das nicht richtig
> interpretiert habe.

Klar mache ich das so - schließlich will ich einmal die Telefonnummer
so, wie sie eingegeben wurde, und einmal so, wie sie für die Suche
optimal ist. Denn einmal schreibt jeman +49-xxxx, 0049-xxxx, 0xxx/xxx,
0xxx xxxx, xxxx (ohne Vorwahl), usw. Auch bei den Namensfeldern kann
es manchmal geschickt sein, sie werden optimiert, weil man bspw. die
Namenszusätze (Titel, Adelstitel) nicht haben möchte.

Hast Du Dich mal mit der Suche in Adressdaten befasst? Und CDs von der
Post mit Zustelldaten verwendet?

Gruß, Dirk

Re: Anzahl NULL Spalte eines Datensatzes bestimmen?

am 23.06.2007 09:05:46 von Dirk Ohme

Dirk Ohme schrieb im Newsbeitrag
Nachtrag:
Bei Telefonnummern gibt's ja auch die schöne Option von
"0700-DIRK-OHME" ... auch ganz toll, wenn nicht auf eine normierte
Form gebracht - wie willst Du das mit CTI verheiraten, wenn es nicht
adaptiert ist?

Gruß, Dirk

Re: Anzahl NULL Spalte eines Datensatzes bestimmen?

am 23.06.2007 09:11:33 von Dirk Ohme

Dominik Echterbruch schrieb im Newsbeitrag
> Ruhig Brauner! Andreas hat lediglich VERMUTET, daß es
> sich um ein defektes Design handeln KÖNNTE.

Wie heisst es so schön: Der Ton macht die Musik. Andreas ist nicht
gerade ein Beispiel für schonenden Umgang mit seinen Mitmenschen ...
und insgesamt scheint es doch eher manchmal so, dass andere etwas zu
sehr für dumm gehalten werden. Lehrbuchmeinungen sind ja schon ganz
nett - aber mein Prof. meinte damals auch, dass es bei den
Normalisierungsregeln auch Grenzen gibt und man deshalb abwägen
sollte.

[...]
> Denk auch bitte immer daran, daß hier Leute antworten, die
> keinerlei Interesse an deinem Geld haben.

Man könnte fast glauben, beruflich bist Du Dienstleister ... genauso,
wie hier niemand Antworten einklagen kann, müssen Antworten auch nicht
gegeben werden. Wenn Dich also eine Fragestellung stört, so bist Du
nicht verpflichtet zu helfen ...

Gruß, Dirk

Re: Anzahl NULL Spalte eines Datensatzes bestimmen?

am 23.06.2007 13:05:24 von Christian Franzen

> Zeig mir bitt wo ich dies tat.

"Aber 200 Spalten, und dann zu faul die Spaltennamen zu schreiben. Das
klingt nach 'select * from ...', womöglich mit vielen großen
Textfeldern. Und die (sinngemäße) Aussage, man habe viele Daten und
deswegen so viele Spalten nötig klingt schon fast wie 'ich habe ein
Gästebuch mit PHP und will 200 Einträge speichern...'."

> Bei Deiner nächsten Frage gebe ich Dir möglicherweise keine Antwort. War
> das das Ziel, was Du erreichen wolltest?

Wäre vollkommen OK. Es gibt hier andere Leute die mir helfen würden.
Allerdings muss ich zugeben das meinen Reaktion etwas heftig war (hatte en
schlechten Tag). Trotzdem war deinen Antwort nicht wikrlich freundlich.

mfg Xion

Re: Anzahl NULL Spalte eines Datensatzes bestimmen?

am 23.06.2007 13:47:01 von Andreas Kretschmer

Andreas
--
q: why do so many people take an instant dislike to mysql?
a: it saves time (oicu in #postgresql)
Explaining the concept of referential integrity to a mysql user is like
explaining condoms to a catholic (Shadda in #postgresql)

Re: Anzahl NULL Spalte eines Datensatzes bestimmen?

am 23.06.2007 15:52:05 von Dominik Echterbruch

Dirk Ohme schrieb:
> Dominik Echterbruch schrieb im Newsbeitrag
>> Ruhig Brauner! Andreas hat lediglich VERMUTET, daß es
>> sich um ein defektes Design handeln KÖNNTE.
>
> Wie heisst es so schön: Der Ton macht die Musik. Andreas ist nicht
> gerade ein Beispiel für schonenden Umgang mit seinen Mitmenschen

Was hat das mit dem aktuellen Fall zu tun?

> [...]
>> Denk auch bitte immer daran, daß hier Leute antworten, die
>> keinerlei Interesse an deinem Geld haben.
>
> Man könnte fast glauben, beruflich bist Du Dienstleister ...

Ist das nicht jeder? Denk mal drüber nach.

> genauso,
> wie hier niemand Antworten einklagen kann, müssen Antworten auch nicht
> gegeben werden. Wenn Dich also eine Fragestellung stört, so bist Du
> nicht verpflichtet zu helfen ...

Nicht die Fragestellung stört mich, sondern die Art, wie auf die Antwort
reagiert wurde. Und ebenso, wie man kein Recht auf eine Antwort hat, hat
man auch kein Recht, jemanden zu beschimpfen. Und - Entschuldigung - für
mich gehört halt zu einem gesitteten Umgang miteinander dazu, sich
wenigstens mal für die Antwort zu bedanken, wenn sie schon hilfreiche
Hinweise enthält, anstatt los zu blöken.

Grüße,
Dominik
--
Wo kämen wir denn hin, wenn jeder sagen würde wo kämen wir hin, aber
niemand gehen würde um zu sehen, wohin wir kämen, wenn wir gingen?
(Autor unbekannt)

Re: Anzahl NULL Spalte eines Datensatzes bestimmen?

am 23.06.2007 16:40:36 von Andreas Scherbaum

Dirk Ohme wrote:
> Andreas Scherbaum schrieb im Newsbeitrag
>> Noch mal für mich zum Mitschreiben: du speicherst alle
>> Daten in einer vcard, zusätzlich noch mal einige Daten
>> extern? Sag mir bitte, das ich das nicht richtig
>> interpretiert habe.
>
> Klar mache ich das so - schließlich will ich einmal die Telefonnummer
> so, wie sie eingegeben wurde, und einmal so, wie sie für die Suche
> optimal ist. Denn einmal schreibt jeman +49-xxxx, 0049-xxxx, 0xxx/xxx,
> 0xxx xxxx, xxxx (ohne Vorwahl), usw. Auch bei den Namensfeldern kann
> es manchmal geschickt sein, sie werden optimiert, weil man bspw. die
> Namenszusätze (Titel, Adelstitel) nicht haben möchte.

Mir käme in den Sinn, diese Daten gleich vernünftig zu speichern, in
einem einheitlichen Format. Ich weiss nicht, warum du die vcard extra
speicherst, aber ich wüsste nur einen Grund, warum ich das tun wollte:
wenn ich die vcard exakt so ausgeben will, wie sie ausgegeben wurde.
Wenn ich die vcard generiere, kann ich diese auf einem einheitlichen
Weg aus den Daten generieren.


> Hast Du Dich mal mit der Suche in Adressdaten befasst? Und CDs von der
> Post mit Zustelldaten verwendet?

Ja. Ja.
Beides war nicht sonderlich schön, aber in beiden Fällen habe ich mir
hinterher immer auf die Schulter geklopft, wenn ich festgestellt habe,
das ich nach der Normalisierung der Daten besser vorankomme als z.B.
mit dem Magnetband Format, das die Post da verwendete.


Bye

--
Andreas 'ads' Scherbaum
Failure is not an option. It comes bundled with your Microsoft product.
(Ferenc Mantfeld)

Re: Anzahl NULL Spalte eines Datensatzes bestimmen?

am 23.06.2007 19:40:02 von Dirk Ohme

Dominik Echterbruch schrieb im Newsbeitrag
> Was hat das mit dem aktuellen Fall zu tun?

"kapottes Design" ... statt das zu unterstellen, könnte man auch
einfach fragen, ob das Absicht oder Unkenntnis ist, anstatt gleich von
einem kaputtem Design zu reden.

> Ist das nicht jeder? Denk mal drüber nach.

"Denk' mal darüber nach" ... warum verwendest Du den Imperativ? Warum
willst Du mir vorschreiben, was ich tun soll? Ist das nicht die
Arroganz, von der ich gesprochen habe?

> Nicht die Fragestellung stört mich, sondern die Art, wie auf die
> Antwort reagiert wurde. Und ebenso, wie man kein Recht auf eine
> Antwort hat, hat man auch kein Recht, jemanden zu beschimpfen. Und -
> Entschuldigung - für mich gehört halt zu einem gesitteten Umgang
> miteinander dazu, sich wenigstens mal für die Antwort zu bedanken,
> wenn sie schon hilfreiche Hinweise enthält, anstatt los zu blöken.

Er hat sich bedankt - lies' einfach nochmals durch den Thread ...
news:5dtnilF35cgkaU1@mid.dfncis.de

Gruß, Dirk

Re: Anzahl NULL Spalte eines Datensatzes bestimmen?

am 23.06.2007 19:47:33 von Dirk Ohme

Andreas Scherbaum schrieb im Newsbeitrag
> Mir käme in den Sinn, diese Daten gleich vernünftig
> zu speichern, in einem einheitlichen Format.

Exakt - ich will die Ursprungsinformation nicht dadurch zerstören,
dass ich sie "optimiere". In der vCard stecken auch
Meta-Informationen, die ich genau so erhalten möchte.

> Wenn ich die vcard generiere, kann ich diese auf einem
> einheitlichen Weg aus den Daten generieren.

Das Problem: Es gibt verschiedene Formate für vCards - je nach
Anwendung werden sie unterschiedlich aufgebaut, strukturiert, haben
spezielle Ergänzungen. Das will ich nicht zerstören. Mir geht es um
eine handvoll Daten, nach denen ich suchen will. Also warum soll ich
mir den Schuh anziehen, alle möglichen Varianzen abzudecken, wenn
ich's mit etwas Redundanz besser hinbekomme? Und: Ich kann die
Sucheinträge optimieren.

> Ja. Ja.
> Beides war nicht sonderlich schön, aber in beiden Fällen habe
> ich mir hinterher immer auf die Schulter geklopft, wenn ich
> festgestellt habe, das ich nach der Normalisierung der Daten
> besser vorankomme als z.B. mit dem Magnetband Format,
> das die Post da verwendete.

Hehe ... hast halt keinen Minicomputer daheim herumstehen, wie ich
auch nicht ;-) Naja, die EBCEDIC-verarbeitenden Anlagen habe ich
vorerst mal hinter mir gelassen ... und schlage mich dafür umso mehr
mit anderem proprietärem Kram herum ;-)

Gruß, Dirk

Re: Anzahl NULL Spalte eines Datensatzes bestimmen?

am 23.06.2007 22:38:27 von Siegfried Schmidt

Hallo Dirk,

> Bei Telefonnummern gibt's ja auch die schöne Option von
> "0700-DIRK-OHME" ... auch ganz toll, wenn nicht auf eine normierte
> Form gebracht - wie willst Du das mit CTI verheiraten, wenn es nicht
> adaptiert ist?

Wie willst du denn eine solche Nummer adaptieren?


Siegfried
--
http://www.schmidt.ath.cx

Re: Anzahl NULL Spalte eines Datensatzes bestimmen?

am 24.06.2007 00:28:45 von Andreas Scherbaum

Dirk Ohme wrote:
> Andreas Scherbaum schrieb im Newsbeitrag
>> Mir käme in den Sinn, diese Daten gleich vernünftig
>> zu speichern, in einem einheitlichen Format.
>
> Exakt - ich will die Ursprungsinformation nicht dadurch zerstören,
> dass ich sie "optimiere". In der vCard stecken auch
> Meta-Informationen, die ich genau so erhalten möchte.

Gut, dann sind aber die originalen vcard Daten für dich bloss
(binäre) Daten, die du nicht weiter anfässt. Das hat also mit
dem Rest der Tabelle nichts zu tun und um auf unser
ursprüngliches Thema zurückzukommen: die Daten sind nicht
denormalisiert. Dich interessieren die zusätzlich abgelegten
Daten in der Datenbank schlicht nicht.

Was externe Applikationen damit noch anstellen, steht auf
einem anderen Blatt. Für deine Suche interessieren nur die
Spalten, die du extrahierst und in deiner Tabelle ablegst.


> Hehe ... hast halt keinen Minicomputer daheim herumstehen, wie ich
> auch nicht ;-) Naja, die EBCEDIC-verarbeitenden Anlagen habe ich
> vorerst mal hinter mir gelassen ... und schlage mich dafür umso mehr
> mit anderem proprietärem Kram herum ;-)

Das Zeug zu parsen war irgendwie hässlich. Die Verknüpfung mit
(damals noch spärlich vorhandenen) eingekauften Geodaten war noch
mal eine Ecke komplizierter, aber irgendwie habe ich daraus eine
nette Umkreissuche gebaut. Das sprengt jetzt aber den Rahmen dieses
Threads und dieser Newsgroup, das war nämlich auf einer Datenbank,
die Geodatentypen unterstützt.


Bye

--
Andreas 'ads' Scherbaum
Failure is not an option. It comes bundled with your Microsoft product.
(Ferenc Mantfeld)

Re: Anzahl NULL Spalte eines Datensatzes bestimmen?

am 24.06.2007 09:11:02 von Dirk Ohme

Siegfried Schmidt schrieb im Newsbeitrag
> Wie willst du denn eine solche Nummer adaptieren?

Die Telefonanlage oder ISDN-Karte liefert mir nunmal 0700-34756463 und
nicht 0700-DIRKOHME. Aber womöglich will ich letzteres als Eselsbrücke
im Eintrag speichern, nur kann man das schlecht in einer SQL-Query so
angeben ... es sei denn, man bastelt sich eine Stored Function genau
für diesen Fall, die bi der SQL-Query auf jede mögliche Zeile der
Datenbank angewandt wird ... höchst ineffektiv ...

Gruß, Dirk

Re: Anzahl NULL Spalte eines Datensatzes bestimmen?

am 24.06.2007 11:03:23 von dnoeth

Dirk Ohme wrote:

> Exakt - ich will die Ursprungsinformation nicht dadurch zerstören, dass
> ich sie "optimiere". In der vCard stecken auch Meta-Informationen, die
> ich genau so erhalten möchte.
....
> Das Problem: Es gibt verschiedene Formate für vCards - je nach Anwendung
> werden sie unterschiedlich aufgebaut, strukturiert, haben spezielle
> Ergänzungen. Das will ich nicht zerstören.

Dann verwendest du die falsche Software :-)
Statt ein Relationales DBMS zu verwenen, solltest du lieber mit einer
Volltext-DB à la AskSam arbeiten, die ist genau für solche Sachen
entwickelt worden.

Dieter

Re: Anzahl NULL Spalte eines Datensatzes bestimmen?

am 24.06.2007 18:00:55 von Dirk Ohme

Dieter Noeth schrieb im Newsbeitrag
> Dann verwendest du die falsche Software :-)

Aha ... und damit kann ich dann eine Benutzerverwaltung aufbauen?
Sorry, aber Du hast nicht so ganz verstanden, um was es mir geht ...
aber Du darfst das gerne so machen. Nur, um bei Anrufen einen Eintrag
zuordnen zu können, gleich eine Volltext-DB zu verwenden, halte ich
für übertrieben. Zumal mir AskSam auch nicht Telefonnummern
normalisiert ... was hätte ich also gewonnen?

Gruß, Dirk

Re: Anzahl NULL Spalte eines Datensatzes bestimmen?

am 25.06.2007 00:45:00 von Andreas Scherbaum

Dirk Ohme wrote:
> Dirk Ohme schrieb im Newsbeitrag
> Nachtrag:
> Bei Telefonnummern gibt's ja auch die schöne Option von
> "0700-DIRK-OHME" ... auch ganz toll, wenn nicht auf eine normierte
> Form gebracht - wie willst Du das mit CTI verheiraten, wenn es nicht
> adaptiert ist?

Wenn du diese Form auch auflösen/speichern möchtest, darfst du sie
zwangsläufig in einer extra Spalte in deiner Tabelle ablegen.

Wie du das ganze dann in eine reale Rufnummer umwandelst, damit deine
Telefonanlage zurechtkommt und welche Form du ggf. anzeigen lässt,
überlasse ich dann dir zur Übung.


Bye

--
Andreas 'ads' Scherbaum
Failure is not an option. It comes bundled with your Microsoft product.
(Ferenc Mantfeld)

Re: Anzahl NULL Spalte eines Datensatzes bestimmen?

am 25.06.2007 09:54:19 von Dirk Ohme

On 25 Jun., 00:45, Andreas Scherbaum wrote:
> Wenn du diese Form auch auflösen/speichern möchtest, darfst du sie
> zwangsläufig in einer extra Spalte in deiner Tabelle ablegen.

das tu' ich doch bereits - nicht gelesen? Insofern frage ich mich,
warum Ihr mein Handeln so in Frage stellt? Mangelnde Akzeptanz für
alternative Konzepte? ;-)

Gruß, Dirk

Re: Anzahl NULL Spalte eines Datensatzes bestimmen?

am 25.06.2007 10:35:48 von Christian Kirsch

Am 25.06.2007 09:54 schrieb Dirk Ohme:
> On 25 Jun., 00:45, Andreas Scherbaum wrote:
>> Wenn du diese Form auch auflösen/speichern möchtest, darfst du sie
>> zwangsläufig in einer extra Spalte in deiner Tabelle ablegen.
>
> das tu' ich doch bereits - nicht gelesen? Insofern frage ich mich,
> warum Ihr mein Handeln so in Frage stellt? Mangelnde Akzeptanz für
> alternative Konzepte? ;-)

Eher gewisse Zweifel daran, dass das Konzept durchdacht ist. Wenn man
Telefonnummern zum Wählen braucht, dann kann man sie doch rechtzeitig
geeignet formatieren. Wozu sollte man dieselbe Nummer zweimal
speichern? Du könntest sie entweder beim Eintragen in einem
normalisierten Format speichern oder sie spätestens beim Wählen
konvertieren.

Re: Anzahl NULL Spalte eines Datensatzes bestimmen?

am 25.06.2007 12:37:51 von Dirk Ohme

On 25 Jun., 10:35, Christian Kirsch wrote:
> Eher gewisse Zweifel daran, dass das Konzept durchdacht ist. Wenn man
> Telefonnummern zum Wählen braucht, dann kann man sie doch rechtzeitig
> geeignet formatieren.

Wer spricht vom Wählen? Ich schrieb "Die Telefonanlage oder ISDN-Karte
liefert mir nunmal [...]" - ich denke, es liegt nahe, dass ich damit
den Fall des eingehenden Gesprächs meinte, oder?

> Wozu sollte man dieselbe Nummer zweimal speichern?
> Du könntest sie entweder beim Eintragen in einem
> normalisierten Format speichern oder sie spätestens beim Wählen
> konvertieren.

Bitte lies' endlich mal, was ich schreibe! Vielleicht verstehst Du es
dann irgendwann mal ... es ist sehr lästig, sich laufend wiederholen
zu müssen - lies' bitte und verstehe!

Ansonsten ist es hochgradig off-topic, solange keine neuen
Erkenntnisse aufgeführt werden - entweder, wir kommen wieder auf eine
Spur, die auch für andere interessant ist, oder wir klären das per
Mail, einverstanden?

Gruß, Dirk