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 18.07.2011, 19:06  
Erfahrener Benutzer
 
Benutzerbild von lstegelitz
 
Registriert seit: 07.09.2009
Beiträge: 4.005
PHP-Kenntnisse:
Fortgeschritten
lstegelitz ist einfach richtig nettlstegelitz ist einfach richtig nettlstegelitz ist einfach richtig nettlstegelitz ist einfach richtig nett
Standard

NULL und 0 sollte schon unterschieden werden, genauso wie false und 0

Bei ausreichender Normalisierung erledigt sich das aber auch noch, dann existiert einfach kein Eintrag in der normalisierten Meßwerttabelle
__________________
Über 90% aller Gewaltverbrechen passieren innerhalb von 24 Stunden nach dem Konsum von Brot.
lstegelitz ist offline   Mit Zitat antworten
Sponsor Mitteilung
PHP Code Flüsterer

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

Alt 19.07.2011, 10:17  
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 ChrisB Beitrag anzeigen
Und warum ist das jetzt der worst case ...?
Kunden haben oft Anforderungen, die sich bei nährer Betrachtung als unsinnig herausstellen. Es gehört mit zu den Aufgaben eines Softwareentwicklers, das zu erkennen und darauf hinzuweisen. Im vorliegenden Fall ist es erst dann sinnvoll, den Status zu speichern, wenn er auch Einfluss auf die Auswertung der Daten hat. Genau diesen Einfluss gilt es zu ergründen.

Laut Aussage von mquadrat hat der Status wohl Einfluss auf die Auswertung, was bedeutet, dass die Anforderung umgesetzt weden muss, das Problem aber noch nicht gelöst ist. Deshalb worst-case.
__________________
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
mimomamu ist offline   Mit Zitat antworten
Alt 19.07.2011, 11:41  
fab
Erfahrener Benutzer
 
Benutzerbild von fab
 
Registriert seit: 28.07.2010
Beiträge: 2.308
PHP-Kenntnisse:
Fortgeschritten
fab ist ein Lichtblickfab ist ein Lichtblickfab ist ein Lichtblickfab ist ein Lichtblickfab ist ein Lichtblick
Standard

Kommt bei 2000 Spalten die nicht zwangsläufig alle einen Wert haben und über die wahrscheinlich auch nicht großartig geJOINt wird vielleicht ein EAV-Modell in Betracht? In dem Fall kannst du den Status direkt als zusätzliche Spalte in den Wertetabellen anlegen.

So in der Art:
Code:
eav_value_datetime
 - id INT
 - attribute_id INT
 - value DATETIME
 - status ENUM('ok','n/a','n/d') DEFAULT 'ok'
fab ist offline   Mit Zitat antworten
Alt 19.07.2011, 17:15  
Erfahrener Benutzer
 
Benutzerbild von lstegelitz
 
Registriert seit: 07.09.2009
Beiträge: 4.005
PHP-Kenntnisse:
Fortgeschritten
lstegelitz ist einfach richtig nettlstegelitz ist einfach richtig nettlstegelitz ist einfach richtig nettlstegelitz ist einfach richtig nett
Standard

Zitat:
Zitat von fab Beitrag anzeigen
bei 2000 Spalten
...sollte man sich intensiv mit Normalisierung auseinandersetzen.

Eine Eigenschafts-Wertetabelle, wo nur gezielt die Werte enthalten sind, für die auch ein Meßwert vorliegt ist in jedem Fall einer flachen Struktur vorzuziehen, wo vielleicht 5 von 2000 Felder gefüllt sind.
__________________
Über 90% aller Gewaltverbrechen passieren innerhalb von 24 Stunden nach dem Konsum von Brot.
lstegelitz ist offline   Mit Zitat antworten
Alt 19.07.2011, 18:52  
hts
Erfahrener Benutzer
 
Registriert seit: 07.09.2010
Beiträge: 722
PHP-Kenntnisse:
Fortgeschritten
hts befindet sich auf einem aufstrebenden Ast
Standard

Also die 2000 Werte sollen natürlich nicht in EINE flache Tabelle importiert werden - ist das so rübergekommen? Die Daten müssen schon in unsere Datenbankstruktur überführt werden. Das werden so um die 50 Tabellen werden.

Aber ich komme erstmal klar. Die betreffenden Variablen erhalten in der DB ein zusätzliches Status-Feld und an der Oberfläche eine Checkbox oder Radio-Buttons. Anders geht es ja wohl nicht.
Mir ist jetzt erstmal nicht langweilig
hts ist offline   Mit Zitat antworten
Alt 19.07.2011, 20:26  
fab
Erfahrener Benutzer
 
Benutzerbild von fab
 
Registriert seit: 28.07.2010
Beiträge: 2.308
PHP-Kenntnisse:
Fortgeschritten
fab ist ein Lichtblickfab ist ein Lichtblickfab ist ein Lichtblickfab ist ein Lichtblickfab ist ein Lichtblick
Standard

Zu deiner Datenbankstruktur hast du noch kein Wort verloren und ich wollte da auch keine Annahmen machen. 50 Tabellen klingt andererseits aber auch nicht nach EAV. Also wie gesagt, falls du an der Struktur noch etwas grundlegend ändern kannst, ich würde es mir überlegen.
fab ist offline   Mit Zitat antworten
Alt 20.07.2011, 03:13  
Erfahrener Benutzer
 
Benutzerbild von tr0y
 
Registriert seit: 26.07.2010
Beiträge: 4.874
PHP-Kenntnisse:
Fortgeschritten
tr0y ist ein wunderbarer Anblicktr0y ist ein wunderbarer Anblicktr0y ist ein wunderbarer Anblicktr0y ist ein wunderbarer Anblicktr0y ist ein wunderbarer Anblicktr0y ist ein wunderbarer Anblicktr0y ist ein wunderbarer Anblicktr0y ist ein wunderbarer Anblick
tr0y eine Nachricht über MSN schicken
Standard

2000 Spalten aufgesplittet auf 40 Tabellen a 50 Spalten.. Da wird einem ganz warm wenn man sich dran machen soll für jede Spalte die existiert einen Status zu speichern, das glaub ich dir.

Möglichkeiten:
  • State Observation Clone - Jede Tabelle wird geclont in der Datenbank hinterlegt und beinhaltet nur Statuswerte ( enum-fieldtype ) und speichert explizit den Status für jede Spalte.
  • State Observation String - Jede Tabelle bekommt eine einzige Spalte die einen (bspw. JSON String) gleicher Partition speichert, in summe reduzierst du die Table-Size nicht wirklich, im gegenteil da alle Spalten in diesem String eigentlich mehr speicherplatz verbrauchen als es einzelne echte Spalten tun würden.
  • relational state observation list - Eine zusätzliche Tabelle speichert den Status der einzelnen Felder mit relation zum Table-Name und zum Table-Feld.
  • document based database structure - CouchDB / MongoDB oder andere Systeme aus dem Document-orientated Storage Engine Sektor nutzen um die Werte auf einzelne Docs aufzusplitten, dort relativiert sich die Geschichte dann auf die Extension eines Datenbank-Objektes und dem Anfügen von Observation-States an die existierenden Einträge. Ob und wie Sinnvoll hier der Einsatz von XML-Datenbanken wäre schieb ich mal aus der Diskussion, ich denke bei der Daten-Menge X die wir noch nicht kennen, aber durchaus vermuten lässt das das sehr viel werden könnte, wird eine XML-Datenbank nichtmehr ganz so flott hinterherkommen.
  • ...

__________________
Lasse mir ohne Anwendung von Gewalt Dinge schenken, Amazon weiß darüber bald mehr.
tr0y ist gerade online   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