php.de

Zurück   php.de > php.de Intern > Off-Topic Diskussionen

Off-Topic Diskussionen Mach mal Pause vom Programmieren!

Antwort
 
LinkBack Themen-Optionen Thema bewerten
Alt 17.07.2011, 17:35  
hts
Erfahrener Benutzer
 
Registriert seit: 07.09.2010
Beiträge: 722
PHP-Kenntnisse:
Fortgeschritten
hts befindet sich auf einem aufstrebenden Ast
Standard Kodierte Datenfelder

Hi Leute,

ich poste mein Problem mal in den OT-Bereich.

Ich habe eine CSV-Datei mit knapp 2000 Variablen, die ich in unsere Datenbank importieren muss. Jede Variable kann dabei die besonderen Werte "nicht dokumentiert" und "nicht anwendbar" annehmen. Anscheinend ist es den Leuten wichtig zu unterscheiden, ob der Wert vegessen/noch nicht erfasst wurde oder eben einer der zwei o.g. Status zutrifft.

Bei Optionslisten, die ich an unserer Datenbankoberfläche per Drop-Down abbilden kann, ist das kein Problem. Kopfzerbrechen bereiten mir die Integer-Felder, hier werden diese speziellen Werte mit hohen Int-Werten kodiert (8888 und 9999), die nicht im normalen Wertebereich liegen. Bei Datumsfeldern wird eine Kodierung mit weit entfernten Zeitpunkten (Jahr 2111 und 2222) benutzt.

Meint ihr, man kann diese vorhandene Kodierung übernehmen? Weil richtig erscheint mir dieses Vorgehen nicht, aber noch zusätzlich für jedes Feld in der DB ein Flag zu hinterlegen + an der Oberfläche ein Drop-Down erscheint mir auch nicht praktikabel. Wie würdet ihr vorgehen?
hts ist offline   Mit Zitat antworten
Sponsor Mitteilung
PHP Code Flüsterer

Registriert seit: 21.08.2005
Beiträge: 4682
PHP-Kenntnisse:
Fortgeschritten

Alt 17.07.2011, 19:26  
Erfahrener Benutzer
 
Registriert seit: 23.08.2010
Beiträge: 495
PHP-Kenntnisse:
Fortgeschritten
mimomamu sorgt für eine eindrucksvolle Atmosphäremimomamu sorgt für eine eindrucksvolle Atmosphäre
Standard

Zitat:
Zitat von hts Beitrag anzeigen
... eine CSV-Datei mit knapp 2000 Variablen, ...
Wie sieht denn die aus? Eine Variable pro Zeile? Eine Variable pro Spalte? Was sind das denn für Variablen übrhaupt?

Zitat:
Zitat von hts Beitrag anzeigen
Anscheinend ist es den Leuten wichtig zu unterscheiden, ob der Wert vegessen/noch nicht erfasst wurde oder eben einer der zwei o.g. Status zutrifft.
Da würde ich ansetzen. Frag den Auftraggeber, warum das wichtig ist. Bestenfalls bekommst du dann zu hören: "Ach, so wichtig ist das nicht. Wenn das Probleme macht, dann kannste das einfach weglassen".
__________________
Meinungen, die ich geäußert habe, sind nicht notwendigerweise meine eigenen. Abweichungen von der deutschen Rechtschreibung unterliegen dem Urheberrecht, dürfen aber unter den Bedingungen von verwendet werden

Geändert von mimomamu (17.07.2011 um 19:30 Uhr).
mimomamu ist offline   Mit Zitat antworten
Alt 17.07.2011, 19:29  
Moderator¹
 
Registriert seit: 28.03.2010
Beiträge: 7.470
PHP-Kenntnisse:
Fortgeschritten
ChrisB ist ein wunderbarer AnblickChrisB ist ein wunderbarer AnblickChrisB ist ein wunderbarer AnblickChrisB ist ein wunderbarer AnblickChrisB ist ein wunderbarer AnblickChrisB ist ein wunderbarer AnblickChrisB ist ein wunderbarer Anblick
Standard

Zitat:
Zitat von hts Beitrag anzeigen
Jede Variable kann dabei die besonderen Werte "nicht dokumentiert" und "nicht anwendbar" annehmen. Anscheinend ist es den Leuten wichtig zu unterscheiden, ob der Wert vegessen/noch nicht erfasst wurde oder eben einer der zwei o.g. Status zutrifft.
Vergessen/noch nicht erfasst wäre für mich NULL.

Die genannten Statii wären dann noch separat abzubilden. Das würde ich dann aber wirklich über entsprechende Kennzeichen machen, und nicht einfach irgendwelche Werte dafür missbrauchen.
__________________
RGB is totally confusing - I mean, at least #C0FFEE should be brown, right?
ChrisB ist offline   Mit Zitat antworten
Alt 17.07.2011, 19:30  
Moderator
 
Registriert seit: 06.06.2008
Beiträge: 4.945
PHP-Kenntnisse:
Fortgeschritten
Wolla ist ein wunderbarer AnblickWolla ist ein wunderbarer AnblickWolla ist ein wunderbarer AnblickWolla ist ein wunderbarer AnblickWolla ist ein wunderbarer AnblickWolla ist ein wunderbarer AnblickWolla ist ein wunderbarer Anblick
Wolla eine Nachricht über ICQ schicken
Standard

Falls die Werte grundsätzlich nur positiv sein können, so kann man die gewünschten Ausprägungen mit -1 und -2 abbilden.
Ansonsten helfen nur flags: 0=zahl gilt, 1=nicht dokumentiert, 2=nicht anwendbar
__________________
Warum denkt mein Hund eigentlich immer dann, wenn es an der Tür klingelt, es sei für ihn?
Wolla ist offline   Mit Zitat antworten
Alt 17.07.2011, 20:22  
hts
Erfahrener Benutzer
 
Registriert seit: 07.09.2010
Beiträge: 722
PHP-Kenntnisse:
Fortgeschritten
hts befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
Zitat von mimomamu
Wie sieht denn die aus? Eine Variable pro Zeile? Eine Variable pro Spalte? Was sind das denn für Variablen übrhaupt?
Die Daten stammen aus SPSS (Statistik-Programm). Das kannst du dir als eine große "Excel"-Tabelle vorstellen. Ich frage mich, wie die Leute bei der Dateneingabe überhaupt damit klargekommen sind.
Jede Zeile entspricht einem Patienten, die 2000 Spalten stellen medizinische Messwerte (Herzfrequenz, Blutdruck, Laborwerte, etc.) dar.

Zitat:
Zitat von mimomamu
Da würde ich ansetzen. Frag den Auftraggeber, warum das wichtig ist. Bestenfalls bekommst du dann zu hören: "Ach, so wichtig ist das nicht. Wenn das Probleme macht, dann kannste das einfach weglassen".
Ja, werde ich wohl machen, wollte nur vorher hier im Forum andere Ideen/Meinungen hören. Wobei ich mir aufgrund der Datenart (Medizin/Rettungsstation) denken kann, das dies schon wichtig ist

Zitat:
Zitat von ChrisB
Die genannten Statii wären dann noch separat abzubilden. Das würde ich dann aber wirklich über entsprechende Kennzeichen machen, und nicht einfach irgendwelche Werte dafür missbrauchen.
Also für jedes Feld ein zusätzliches Status-Flag. Ist aber sehr umständlich für die Datenerfassung, ich gehe hier aber mit dir prinzipiell konform.
Was wäre für dich das stichaltigste Argument gegen die Kodierung mit Sonderwerten?

@Wolla
Negative Zahlen sind nun auch nicht besser. Datumsfelder gibt es außerdem noch.
hts ist offline   Mit Zitat antworten
Alt 17.07.2011, 20:29  
Moderator¹
 
Registriert seit: 28.03.2010
Beiträge: 7.470
PHP-Kenntnisse:
Fortgeschritten
ChrisB ist ein wunderbarer AnblickChrisB ist ein wunderbarer AnblickChrisB ist ein wunderbarer AnblickChrisB ist ein wunderbarer AnblickChrisB ist ein wunderbarer AnblickChrisB ist ein wunderbarer AnblickChrisB ist ein wunderbarer Anblick
Standard

Zitat:
Zitat von hts Beitrag anzeigen
Was wäre für dich das stichaltigste Argument gegen die Kodierung mit Sonderwerten?
Dass das nicht sonderlich intuitiv ist, und dass dabei Daten eine ganz andere Bedeutung zugemessen bekommen.
Und dass sowas immer wieder lustig wird, wenn irgendwann der Fall eintritt, dass so ein „Sonderwert“ dann plötzlich doch mal als normales Datum auftaucht - vielleicht auch erst in der Zukunft.
__________________
RGB is totally confusing - I mean, at least #C0FFEE should be brown, right?
ChrisB ist offline   Mit Zitat antworten
Alt 17.07.2011, 21:16  
hts
Erfahrener Benutzer
 
Registriert seit: 07.09.2010
Beiträge: 722
PHP-Kenntnisse:
Fortgeschritten
hts befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
Zitat von ChrisB Beitrag anzeigen
Und dass sowas immer wieder lustig wird, wenn irgendwann der Fall eintritt, dass so ein „Sonderwert“ dann plötzlich doch mal als normales Datum auftaucht - vielleicht auch erst in der Zukunft.
Ich wollte gerade schreiben, dass das egal ist, da ich das nicht mehr erlebe, zumindest für die Datumswerte ...

Aber dieses Argument sticht: sämtliche Datenbankabfragen -Berechnungen müssten dann auch diese Sonderfälle berücksichtigen (Blutdruck > x, MessertY fehlt=>NULL, Durchschnitt Gewicht) und auch alle externen Programme zur weiteren Berechnung/Statistik nach einem Datenexport.
hts ist offline   Mit Zitat antworten
Alt 18.07.2011, 09:22  
Erfahrener Benutzer
 
Registriert seit: 02.09.2009
Beiträge: 1.019
PHP-Kenntnisse:
Fortgeschritten
mquadrat befindet sich auf einem aufstrebenden Ast
Standard

Jep genau das ist der Hauptgrund, warum das Probleme macht.

DB NULL ist imho auch keine Lösung, da das im Programmverlauf zu "echten" Werten wie int 0 werden könnte.
__________________
Wir suchen PHP Entwickler (Vollzeit) im Raum Darmstadt / Rhein-Main. Infos via E-Mail mueller@new-frontiers.de
mquadrat ist offline   Mit Zitat antworten
Alt 18.07.2011, 14:18  
hts
Erfahrener Benutzer
 
Registriert seit: 07.09.2010
Beiträge: 722
PHP-Kenntnisse:
Fortgeschritten
hts befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
Zitat von mimomamu Beitrag anzeigen
Frag den Auftraggeber, warum das wichtig ist. Bestenfalls bekommst du dann zu hören: "Ach, so wichtig ist das nicht. Wenn das Probleme macht, dann kannste das einfach weglassen".
So, hab' ich gemacht und der "worst case" ist eingetreten. Es soll wirklich für jedes Feld ein zusätzlicher Status erfassbar sein, wenn keine Daten vorliegen.
hts ist offline   Mit Zitat antworten
Alt 18.07.2011, 14:20  
Moderator¹
 
Registriert seit: 28.03.2010
Beiträge: 7.470
PHP-Kenntnisse:
Fortgeschritten
ChrisB ist ein wunderbarer AnblickChrisB ist ein wunderbarer AnblickChrisB ist ein wunderbarer AnblickChrisB ist ein wunderbarer AnblickChrisB ist ein wunderbarer AnblickChrisB ist ein wunderbarer AnblickChrisB ist ein wunderbarer Anblick
Standard

Zitat:
Zitat von mquadrat Beitrag anzeigen
DB NULL ist imho auch keine Lösung, da das im Programmverlauf zu "echten" Werten wie int 0 werden könnte.
NULL ist für solche Fälle gedacht.
Wenn (d)ein Script damit nicht korrekt umgehen kann, ist das doch kein Problem des Datenmodells.

Zitat:
Zitat von hts Beitrag anzeigen
So, hab' ich gemacht und der "worst case" ist eingetreten. Es soll wirklich für jedes Feld ein zusätzlicher Status erfassbar sein, wenn keine Daten vorliegen.
Und warum ist das jetzt der worst case ...?
Du hast noch mal explizit bestätigt bekommen, dass du es vernünftig machen sollst.
__________________
RGB is totally confusing - I mean, at least #C0FFEE should be brown, right?
ChrisB ist offline   Mit Zitat antworten
Antwort


Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an
Gehe zu

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Base64 kodierte Binär-String als Datei speichern... 7Style PHP Einsteiger 11 25.05.2011 15:34
[Erledigt] Datenfelder mit Index, Datenbankabgleich Herr Jeh Datenbanken 2 08.02.2010 05:01
[Erledigt] 2 Datenfelder (datum/uhrzeit) zu einem (datetime) zusammenfügen CyberNibbler Datenbanken 5 06.08.2008 16:09
einzelnen Datenfelder aus einer Testzeile PHP Tipps 2004 0 13.10.2004 22:49


Alle Zeitangaben in WEZ +2. Es ist jetzt 17:12 Uhr.




Powered by vBulletin® Version 3.7.2 (Deutsch)
Copyright ©2000 - 2012, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0
Aprilia-Forum, Aquaristik-Forum, Liebeskummer-Forum, Zierfisch-Forum, Geizkragen-Forum