Zurück   klamm-Forum > Virtual World > Programmierung

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 02.12.2011, 22:32:39   #1 (permalink)
Erfahrener Benutzer

ID: 174417
Lose-Remote

Reg: 10.03.2007
Beiträge: 666
baserider befindet sich auf einem aufstrebenden Ast
Standard Produktvarianten

Hi,

ich möchte mal als Biespil das iPads nehmen.
Das gibt es ja in schwarz/weiß jeweils mit 16,32,64GB mit und ohne 3G. Die restlichen technischen Daten sind ja immer identisch

Macht es denn Sinn in der Datenbank jeweils für jede Variation einen neuen Datensatz anzulegen bzw. wie könnte die Datenbank aussehen, so das man am besten nur 1 mal alles eingeben muss was gleich ist und jeweils die Unterschiede zuordnet? Ist ja auch bei anderen Herstellern noch so oder auch beim iphone
baserider ist offline   Mit Zitat antworten
Gesponsorte Links
Alt 02.12.2011, 23:39:42   #2 (permalink)
bekämpft die Mächte des Bösen
Benutzerbild von theHacker

ID: 69505
Lose-Remote

theHacker eine Nachricht über ICQ schicken theHacker eine Nachricht über AIM schicken theHacker eine Nachricht über MSN schicken theHacker eine Nachricht über Yahoo! schicken theHacker eine Nachricht über Skype™ schicken
Reg: 20.04.2006
Beiträge: 20.468
theHacker genießt hohes AnsehentheHacker genießt hohes AnsehentheHacker genießt hohes AnsehentheHacker genießt hohes AnsehentheHacker genießt hohes AnsehentheHacker genießt hohes AnsehentheHacker genießt hohes AnsehentheHacker genießt hohes AnsehentheHacker genießt hohes AnsehentheHacker genießt hohes AnsehentheHacker genießt hohes Ansehen
Standard

Varianten werden für gewöhnlich mit einem Masterartikel und den Variantenartikeln gemacht.

Der Master ist hierbei ein abstrakter Artikel, der nicht bestellt werden kann, aber alle - über alle Varianten identischen - Merkmale aufweist.
Die Variante hat dann als Daten nur noch die konkreten Merkmale für die jeweilige Ausprägung.
theHacker ist offline   Mit Zitat antworten
Alt 02.12.2011, 23:47:44   #3 (permalink)
Erfahrener Benutzer

ID: 174417
Lose-Remote

Reg: 10.03.2007
Beiträge: 666
baserider befindet sich auf einem aufstrebenden Ast
Standard

Hi,

wenn ich nun ein Datenbankdesign anlegen möchte, bedeutet das also ich lege eine Tabelle an mit den allgemeinen Merkmalen und dann jeweils Tabellen für die Varianten?
baserider ist offline Threadstarter   Mit Zitat antworten
Alt 02.12.2011, 23:55:03   #4 (permalink)
bekämpft die Mächte des Bösen
Benutzerbild von theHacker

ID: 69505
Lose-Remote

theHacker eine Nachricht über ICQ schicken theHacker eine Nachricht über AIM schicken theHacker eine Nachricht über MSN schicken theHacker eine Nachricht über Yahoo! schicken theHacker eine Nachricht über Skype™ schicken
Reg: 20.04.2006
Beiträge: 20.468
theHacker genießt hohes AnsehentheHacker genießt hohes AnsehentheHacker genießt hohes AnsehentheHacker genießt hohes AnsehentheHacker genießt hohes AnsehentheHacker genießt hohes AnsehentheHacker genießt hohes AnsehentheHacker genießt hohes AnsehentheHacker genießt hohes AnsehentheHacker genießt hohes AnsehentheHacker genießt hohes Ansehen
Standard

Merkmale haben sowohl die Variante (z.B. Speicher von iPad), als auch der Master (z.B. Produktbezeichnung, Hersteller).
Varianten und Master sind beides Artikel, die sonst sehr ähnlich sind.

Damit komme ich auf 2 Tabellen: Merkmale und Artikel mit 1:n.
theHacker ist offline   Mit Zitat antworten
Alt 03.12.2011, 00:08:52   #5 (permalink)
Erfahrener Benutzer

ID: 174417
Lose-Remote

Reg: 10.03.2007
Beiträge: 666
baserider befindet sich auf einem aufstrebenden Ast
Standard

Hi,

danke. Jetzt wird es klarer :-) Hab es mal kurz aufgeschrieben und wenn ich dich richtig verstanden habe dann ungefähr so hier:

Artikel
--------
id
name
prozessor
wlan

Merkmale
-----------
id
artikel_id
speicher
3G
baserider ist offline Threadstarter   Mit Zitat antworten
Alt 03.12.2011, 00:23:32   #6 (permalink)
bekämpft die Mächte des Bösen
Benutzerbild von theHacker

ID: 69505
Lose-Remote

theHacker eine Nachricht über ICQ schicken theHacker eine Nachricht über AIM schicken theHacker eine Nachricht über MSN schicken theHacker eine Nachricht über Yahoo! schicken theHacker eine Nachricht über Skype™ schicken
Reg: 20.04.2006
Beiträge: 20.468
theHacker genießt hohes AnsehentheHacker genießt hohes AnsehentheHacker genießt hohes AnsehentheHacker genießt hohes AnsehentheHacker genießt hohes AnsehentheHacker genießt hohes AnsehentheHacker genießt hohes AnsehentheHacker genießt hohes AnsehentheHacker genießt hohes AnsehentheHacker genießt hohes AnsehentheHacker genießt hohes Ansehen
Standard

Nö. Die Spalten sind alle abstrakt.

WLAN und Prozessor sind Merkmale (außer, wirklich jeder Artikel hat bei dir Prozessor und WLAN).
Und Speicher und 3G hat bei Merkmal absolut nix verloren. Das is eher ein Name-Value-Paar.
theHacker ist offline   Mit Zitat antworten
Alt 03.12.2011, 06:21:34   #7 (permalink)
Multitalent
Benutzerbild von joschilein

ID: 9301
Lose-Remote

joschilein eine Nachricht über ICQ schicken
Reg: 05.05.2006
Beiträge: 1.414
joschilein genießt hohes Ansehenjoschilein genießt hohes Ansehenjoschilein genießt hohes Ansehenjoschilein genießt hohes Ansehenjoschilein genießt hohes Ansehenjoschilein genießt hohes Ansehenjoschilein genießt hohes Ansehenjoschilein genießt hohes Ansehenjoschilein genießt hohes Ansehenjoschilein genießt hohes Ansehenjoschilein genießt hohes Ansehen
Standard

Wie wäre es mit
Artikel
------
id
pid (keine pid = Masterartikel = nicht bestellbar)
name

und Merkmale
------
id
artikel_id
name
wert

Wobei bei mir dann immer die Frage aufkommt, wie insbesondere die wert-Spalte formatiert sein sollte. Kann ja von Preis bis Beschreibung so ziemlich alles sein, außer solche universellen Dinge werden auch noch in Artikel gesteckt (was wohl sogar zu bevorzugen wäre)


Heute schon gepixelt
joschilein ist offline   Mit Zitat antworten
Alt 03.12.2011, 07:10:19   #8 (permalink)
bekämpft die Mächte des Bösen
Benutzerbild von theHacker

ID: 69505
Lose-Remote

theHacker eine Nachricht über ICQ schicken theHacker eine Nachricht über AIM schicken theHacker eine Nachricht über MSN schicken theHacker eine Nachricht über Yahoo! schicken theHacker eine Nachricht über Skype™ schicken
Reg: 20.04.2006
Beiträge: 20.468
theHacker genießt hohes AnsehentheHacker genießt hohes AnsehentheHacker genießt hohes AnsehentheHacker genießt hohes AnsehentheHacker genießt hohes AnsehentheHacker genießt hohes AnsehentheHacker genießt hohes AnsehentheHacker genießt hohes AnsehentheHacker genießt hohes AnsehentheHacker genießt hohes AnsehentheHacker genießt hohes Ansehen
Standard

Was Universielles, wie z.B. ne Artikelnummer kann man ja zusätzlich in die Artikel-Tabelle aufnehmen.

Es sollten halt nur keine spezifischen Sachen, wie das genannte WLAN oder so in den Tabellen als Spalte auftauchen.
theHacker ist offline   Mit Zitat antworten
Alt 03.12.2011, 09:54:43   #9 (permalink)
Erfahrener Benutzer

ID: 174417
Lose-Remote

Reg: 10.03.2007
Beiträge: 666
baserider befindet sich auf einem aufstrebenden Ast
Standard

Hi,

@theHacker, dann habe ich dich irgendwie nicht so richtig verstanden. Könntest du mir mal eine kleines Beispiel aufzeigen, wie du es meinst? Oder geht das so in die Richtung wie von joschilein geschrieben? Dann frage ich mich ebenfalls, wie die wert-Spalte dann formatiert wird, da ja nicht nur Texte dort drin stehen.
baserider ist offline Threadstarter   Mit Zitat antworten
Alt 03.12.2011, 10:13:33   #10 (permalink)
bekämpft die Mächte des Bösen
Benutzerbild von theHacker

ID: 69505
Lose-Remote

theHacker eine Nachricht über ICQ schicken theHacker eine Nachricht über AIM schicken theHacker eine Nachricht über MSN schicken theHacker eine Nachricht über Yahoo! schicken theHacker eine Nachricht über Skype™ schicken
Reg: 20.04.2006
Beiträge: 20.468
theHacker genießt hohes AnsehentheHacker genießt hohes AnsehentheHacker genießt hohes AnsehentheHacker genießt hohes AnsehentheHacker genießt hohes AnsehentheHacker genießt hohes AnsehentheHacker genießt hohes AnsehentheHacker genießt hohes AnsehentheHacker genießt hohes AnsehentheHacker genießt hohes AnsehentheHacker genießt hohes Ansehen
Standard

Zitat:
Zitat von baserider Beitrag anzeigen
Könntest du mir mal eine kleines Beispiel aufzeigen, wie du es meinst? Oder geht das so in die Richtung wie von joschilein geschrieben?
Ich hatte genau joschilein's Lösung im Kopf.
Zitat:
Zitat von baserider Beitrag anzeigen
Dann frage ich mich ebenfalls, wie die wert-Spalte dann formatiert wird, da ja nicht nur Texte dort drin stehen.
Gut, hier kann man es dann wieder beliebig kompliziert machen; jenachdem, was du brauchst.

Denkbar wären mehrere Tabellen (eine für Text-Merkmale, eine für Integer-Merkmale) bzw. mehrere Spalten mit verschiedenen Typen in einer Tabelle.
Welche Lösung da die sinnvollere is, weiß ich nicht sicher. Ich persönlich tipp ja drauf, dass alles in einer Tabelle zwar mehr Platz braucht (weil viele NULL-Werte), aber wohl von der Performance besser geht, weil du mit einem JOIN alles dran hast, was du brauchst.

Um es noch komplizierter zu machen:
  1. Statt merkmal.name kannst du hier einen Fremdschlüssel in eine Tabelle mit Merkmalen und deren Metadaten machen.
  2. Statt merkmal.wert wäre auch Typ + Fremdschlüssel in typ-spezifische Tabelle möglich.
  3. Wenn du (2) mit (1) kombinierst, kann der Typ entfallen, weil der dann Merkmal-Metadatum is.
theHacker ist offline   Mit Zitat antworten
Alt 03.12.2011, 11:18:28   #11 (permalink)
Erfahrener Benutzer

ID: 217591
Lose-Remote

Aradiv eine Nachricht über ICQ schicken Aradiv eine Nachricht über MSN schicken
Reg: 20.04.2006
Beiträge: 1.543
Aradiv ist ein wunderbarer AnblickAradiv ist ein wunderbarer AnblickAradiv ist ein wunderbarer AnblickAradiv ist ein wunderbarer AnblickAradiv ist ein wunderbarer AnblickAradiv ist ein wunderbarer AnblickAradiv ist ein wunderbarer AnblickAradiv ist ein wunderbarer Anblick
Standard

Merkmale
keyvalueartikelvariante


Variante
idartikel

Abfrage für alle Merkmale

Code:
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
SELECT key, value FROM Merkmale as M LEFT JOIN Variante as V ON ( M.artikel=V.artikel OR M.variante=V.id ) WHERE V.id=%d;
bei Merkmale ist entweder artikel oder variante NULL

Geändert von Aradiv (03.12.2011 um 11:24:28 Uhr)
Aradiv ist offline   Mit Zitat antworten
Alt 03.12.2011, 11:35:25   #12 (permalink)
bekämpft die Mächte des Bösen
Benutzerbild von theHacker

ID: 69505
Lose-Remote

theHacker eine Nachricht über ICQ schicken theHacker eine Nachricht über AIM schicken theHacker eine Nachricht über MSN schicken theHacker eine Nachricht über Yahoo! schicken theHacker eine Nachricht über Skype™ schicken
Reg: 20.04.2006
Beiträge: 20.468
theHacker genießt hohes AnsehentheHacker genießt hohes AnsehentheHacker genießt hohes AnsehentheHacker genießt hohes AnsehentheHacker genießt hohes AnsehentheHacker genießt hohes AnsehentheHacker genießt hohes AnsehentheHacker genießt hohes AnsehentheHacker genießt hohes AnsehentheHacker genießt hohes AnsehentheHacker genießt hohes Ansehen
Standard

Und wie weise ich einem Artikel, der keine Variante is, dann eine ID?

Du hast die Unterscheidung Master vs. Variante nicht in die Merkmalstabelle stecken. Das passt nicht.
theHacker ist offline   Mit Zitat antworten
Alt 03.12.2011, 11:41:36   #13 (permalink)
Erfahrener Benutzer

ID: 174417
Lose-Remote

Reg: 10.03.2007
Beiträge: 666
baserider befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
Zitat von theHacker Beitrag anzeigen
Ich hatte genau joschilein's Lösung im Kopf.
Gut, hier kann man es dann wieder beliebig kompliziert machen; jenachdem, was du brauchst.
Wenn ich mal bei den iPads bleibe, dann würde man in der Tabelle Merkmale, alle Dinge die gleich sind mehrfach reinschreiben, denn in der Tabelle Artikel sollen ja nur ganz universelle Dinge abgelegt werden. Prozessor, Bildschirmdiagonale usw. sind ja (bei den ipads) überall gleich, aber kommen nicht in die Tabelle Artikel, weil ich ja mit der gezeigten Lösung auch andere Artiklel speichern könnte.
baserider ist offline Threadstarter   Mit Zitat antworten
Alt 03.12.2011, 13:51:35   #14 (permalink)
Erfahrener Benutzer

ID: 272843
Lose-Remote

Reg: 01.02.2007
Beiträge: 1.814
marac genießt hohes Ansehenmarac genießt hohes Ansehenmarac genießt hohes Ansehenmarac genießt hohes Ansehenmarac genießt hohes Ansehenmarac genießt hohes Ansehenmarac genießt hohes Ansehenmarac genießt hohes Ansehenmarac genießt hohes Ansehenmarac genießt hohes Ansehenmarac genießt hohes Ansehen
Standard

Nein, die allgemeinen Infos würdest du dann z.B. der Artikel-ID 1 zuordnen, die spezifischen Merkmale den Artikeln 2-5, und 2-5 bekommen eben zusätzlich die Info (mit der pid), dass sie Varianten von 1 sind, und damit zusätzlich zu den eigenen Eigenschaften auch alle Eigenschaften von 1 haben...
Und nun gebe ich ab zur Werbung:
marac ist offline   Mit Zitat antworten
Alt 03.12.2011, 13:54:57   #15 (permalink)
Erfahrener Benutzer

ID: 174417
Lose-Remote

Reg: 10.03.2007
Beiträge: 666
baserider befindet sich auf einem aufstrebenden Ast
Standard

Hi,

ich glaub nun hab ichs verstanden :-)
Dann kann man ja nun einseits Varianten abbilden aber auch alle möglichen weiteren Artikel.
baserider ist offline Threadstarter   Mit Zitat antworten
Antwort

Gesponsorte Links

Anzeige


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 
Themen-Optionen
Ansicht

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

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



Alle Zeitangaben in WEZ +1. Es ist jetzt 18:14:19 Uhr.