php.de

Zurück   php.de > Webentwicklung > Software-Design

Software-Design Diskussionen auf Profi-Niveau: PHP Lösungen auf konzeptioneller Ebene

Antwort
 
LinkBack Themen-Optionen Bewertung: Bewertung: 1 Stimmen, 5,00 durchschnittlich.
Alt 24.03.2011, 19:58  
Erfahrener Benutzer
 
Registriert seit: 25.05.2010
Beiträge: 852
PHP-Kenntnisse:
Anfänger
Trainmaster wird schon bald berühmt werden
Standard [Erledigt] Persistente Speicherung von metrischen Daten

Hallo zusammen,

ich beschäftige mich gerade mit folgender Fragestellung: Wie speichere ich am geschicktesten metrische Daten in einer Datenbank? Folgende Überlegungen habe ich getroffen:

- per Konvention (kg für Gewicht, m für Längen, l für Volumen). Als Feldtyp würde ich Decimal (12,3) verwenden. Möchte ich zum Beispiel 100 g speichern, trage ich 0.1 ein.

- als String. Der Feldtyp VARCHAR (7) dürfte genügen, vorrausgesetzt man verwendet entsprechende Einheiten. Dies ermöglicht maximale Flexibilität. Allerdings muss beim Auslesen der String zerschnitten werden, um mit damit rechnen zu können.

- der Mittelweg. Ein Feld für den Wert und ein extra Feld für die Einheit. Die zusätzliche Abfrage geht aber auf Kosten der Performance. Macht Normalisierung an dieser Stelle überhaupt Sinn oder ist es zu viel des Guten?

Was meint ihr zu meinen Gedanken? Im Moment neige ich zur String-Variante.
Trainmaster ist offline   Mit Zitat antworten
Sponsor Mitteilung
PHP Code Flüsterer

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

Alt 24.03.2011, 20:37  
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

Definitiv die erste Variante.
Als String erscheint mir reichlich unsinnig.
__________________
RGB is totally confusing - I mean, at least #C0FFEE should be brown, right?
ChrisB ist offline   Mit Zitat antworten
Alt 24.03.2011, 20:39  
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

Die Frage ist: Was willst du damit machen?

Ohne Hintergrund würde ich eher zu deinem Mittelweg tendieren, aber mach das Feld für den Wert net so Ultra-Klein.. 12 Vor- und 3 Nachkommastellen sind IMHO viel zu wenig. Sollte dein Code mal von Physikern, Biologen oder Chemikern verwendet werden, musst du auch astronomisch große oder kleine Zahlen abbilden können.
__________________
Über 90% aller Gewaltverbrechen passieren innerhalb von 24 Stunden nach dem Konsum von Brot.
lstegelitz ist offline   Mit Zitat antworten
Alt 24.03.2011, 20:49  
moderatives Dielektrikum
 
Benutzerbild von nikosch
 
Registriert seit: 21.05.2008
Beiträge: 35.994
PHP-Kenntnisse:
Fortgeschritten
nikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunft
Standard

Zitat:
- per Konvention (kg für Gewicht, m für Längen, l für Volumen). Als Feldtyp würde ich Decimal (12,3) verwenden. Möchte ich zum Beispiel 100 g speichern, trage ich 0.1 ein.
Allerdings per korrekter Konvention. Also Gramm für Masse. Die SI-Einheiten wurden ja nicht grundlos erfunden.
__________________
--
One pixel is still too big. Please make it smaller. ASAP.

Initiative Mittelstand.
Die wichtigste Gestaltungsregel im Screendesign ist Pi mal Daumen des Arbeitgebers.
--
nikosch ist offline   Mit Zitat antworten
Alt 24.03.2011, 20:52  
hts
Erfahrener Benutzer
 
Registriert seit: 07.09.2010
Beiträge: 724
PHP-Kenntnisse:
Fortgeschritten
hts befindet sich auf einem aufstrebenden Ast
Standard

Bei zwei bin ich ChrisBs Meinung.

In meiner Anwendung habe ich eine Kombination aus 1 und 3, würde ich sagen.

Ich speichere den Wert normiert ab, also in der Standardeinheit der entsprechenden Einheit (macht sich für Berechnungen etc. gut). Zusätzlich wird als Fremdschlüssel die Anzeigeeinheit gespeichert, also wenn Gramm eingegeben wurde, soll auch Gramm angezeigt werden und nicht KG. In der Anwendung kann über Drop-Down mit ein bisschen JavaScript die Einheit auch gewechselt werden.

Der Fremdschlüssel verweist auf die Einheitentabelle. Hier ist die Standardeinheit, die Umrechnungsfaktoren und die Bezeichnung hinterlegt. Die Einheiten sind nach Typ gruppiert, also Gewicht, Volumen ...
hts ist offline   Mit Zitat antworten
Alt 24.03.2011, 23:36  
Erfahrener Benutzer
 
Registriert seit: 25.05.2010
Beiträge: 852
PHP-Kenntnisse:
Anfänger
Trainmaster wird schon bald berühmt werden
Standard

Vielen Dank soweit für eure Antworten. Das ganze wird für ein Shop-System benötigt. Dabei ist das Gewicht oder eine Länge ein Attribut eines Produktes. Größere Systeme ala Magento oder Oxid arbeiten meines Wissens nach Konvention, Mangento verwendet z.B. DECIMAL (12,4) für Gewicht.

Istegelitz spricht genau den Punkt an, welchen ich etwas kritisch sehe. In aller Regel würden wohl drei Nachkomma- und neun Vorkommastellen mit Sicherheit reichen. Vielleicht mache ich mir an dieser Stelle zu viele Gedanken über mögliche Extrema, wie z.B. Mikrogramm. Wahrscheinlich treffen sie bei einem Shop gar nie ein.


@ nikosch

Kilogramm ist die Standard SI-Einheit für Masse?!
Trainmaster ist offline   Mit Zitat antworten
Alt 29.03.2011, 00:16  
moderatives Dielektrikum
 
Benutzerbild von nikosch
 
Registriert seit: 21.05.2008
Beiträge: 35.994
PHP-Kenntnisse:
Fortgeschritten
nikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunft
Standard

Zitat:
Also Gramm für Masse
[edit]

Oh, ok, dann empfehle ich wohl besser nicht SI-Einheiten. Sondern die Einheiten ohne Präfix.

Kleiner Tipp, Trainmaster: Eine Aussage sollte man nicht als Frage formulieren.
__________________
--
One pixel is still too big. Please make it smaller. ASAP.

Initiative Mittelstand.
Die wichtigste Gestaltungsregel im Screendesign ist Pi mal Daumen des Arbeitgebers.
--
nikosch ist offline   Mit Zitat antworten
Alt 29.03.2011, 01:34  
Erfahrener Benutzer
 
Registriert seit: 25.05.2010
Beiträge: 852
PHP-Kenntnisse:
Anfänger
Trainmaster wird schon bald berühmt werden
Standard

Da hast du wohl recht, das Fragezeichen gehört da nicht hin, Danke.

Nach dem SI-Einheitensystem zu verfahren finde ich gar nicht so verkehrt. So wie es aussieht, gibt es noch ein weiteres Einheitensystem, das CGS. Dort ist Gramm die Basiseinheit. Trotzdem werde ich es mit einer Konvention über das SI-Einheitensystem versuchen.
Trainmaster ist offline   Mit Zitat antworten
Alt 29.03.2011, 07:16  
moderatives Dielektrikum
 
Benutzerbild von nikosch
 
Registriert seit: 21.05.2008
Beiträge: 35.994
PHP-Kenntnisse:
Fortgeschritten
nikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunft
Standard

Gerade die Abweichung schafft doch aber nur Probleme. Der Vorteil ist doch eben, dass ich mit den Präfixen super k => *= 1000, m => /= 1000 etc. abbilden kann. So muss ich erst die Basiseinheit auswerten, was bspw. in der DB ein echter Nachteil ist.
__________________
--
One pixel is still too big. Please make it smaller. ASAP.

Initiative Mittelstand.
Die wichtigste Gestaltungsregel im Screendesign ist Pi mal Daumen des Arbeitgebers.
--
nikosch ist offline   Mit Zitat antworten
Alt 29.03.2011, 08:37  
Moderator
 
Benutzerbild von Chriz
 
Registriert seit: 11.05.2008
Beiträge: 6.269
Chriz ist ein wunderbarer AnblickChriz ist ein wunderbarer AnblickChriz ist ein wunderbarer AnblickChriz ist ein wunderbarer AnblickChriz ist ein wunderbarer AnblickChriz ist ein wunderbarer AnblickChriz ist ein wunderbarer Anblick
Standard

Vor allem hast du dann ja doch wieder Kommawerte in der DB.
__________________
"Nuschel ich?" - "Was?"
Chriz 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
Tabelle soll nach X Einträgen neue Zeile anfangen raws18 PHP Einsteiger 6 10.02.2011 17:19
Vie Formular empfangene Daten berarbeiten und an remote PHP Skript senden fr3sh PHP Einsteiger 4 27.01.2011 10:20
mehrere Daten von Tabelle gleichzeitig eintragen Mario75 PHP Einsteiger 3 27.11.2010 12:49
[Erledigt] geänderte Daten übergeben ? danyh Datenbanken 3 17.03.2010 12:00
Speicherung von Datum und Uhrzeit in einer Datenbank [-UFO-]Melkor PHP Tipps 2009 4 27.05.2009 12:31
persistente Speicherung von Suchparametern (db-seitig) nikosch Software-Design 13 26.04.2009 13:24
speicherung der daten bei stromausfall? MrCavity Datenbanken 2 19.11.2005 17:39
[Erledigt] sql daten für einen kunden auslesen/ändern im Formular PHP Tipps 2005-2 3 12.10.2005 08:36
[Erledigt] Daten aus mehreren Tabellen holen Datenbanken 0 19.09.2005 17:14
Daten auslesen und ändern Datenbanken 2 17.09.2005 19:28
Daten eintragen und auslesen Rettungsdackel Datenbanken 0 14.09.2005 16:29
Modales Fenster zur Eingabe von Daten HTML, Usability und Barrierefreiheit 0 22.06.2004 12:52
Übertragung von Daten zwischen Anmeldeschritten PHP Tipps 2004 6 18.06.2004 20:32
HILFE: Column count doesn't match value count at row 1 Datenbanken 17 12.06.2004 16:45
daten werden nicht übergeben PHP Tipps 2004 1 04.06.2004 12:03

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
persistente speicherung, persistente speicherung von daten in einer datenbank, magento attribute mit einheit, db decimal wie viele vorkommastellen, magento attribut einheiten, persistente datenspeicherung in php oder sql, php sql persistente datenspeicherung, magento umrechnung metrisch, php persistente daten, kann mangento preise ohne nachkomma, metrische uhrzeiten

Alle Zeitangaben in WEZ +2. Es ist jetzt 01:33 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