Du bist nicht angemeldet (anmelden)
Seite 1
Erledigt: Datenbank konzipieren
Wir arbeiten an der FH gerade an einem Tool, mit dem man Trends im Produktdesign der letzten Jahre visualisieren kann. Das ganze soll eine von Studenten gefüttere Bilddatenbank werden. Die Bilder sind allerdings auch recht komplex getaggt/kategorisiert/eingeordnet - what ever.
Das sind sehr unterschiedliche Eigenschaften, die da bestimmt werden müssen. Farbigkeit - dort kann man mehrere Sachen auswählen. Komplex wird es aber bei sachen wie der Form: Die ist dann z.B. „eher organisch“ (was dann z.B. „rechtwinklig/orhogonal“ ausschliesst) UND „neu“ statt „bekannt“ UND ganz vielen anderen Abhänigkeiten.
Hier ist ein sehr früher Mock-Up http://topotropic.de/superstyle/intern_u...oad03.html
Jetzt möchte ich einen Prototypen mit PHP/MYSQL bauen und weiss aber nicht so recht, wie man am besten bei so etwas vorgeht.
Meine aktuelle Strategie wäre: 2 Tabellen, BILDER, CHARAKTERISTIK
BILDER: uploadedimage, dateuploaded, designer, year, characterid
CHARAKTERISTIK: id, eckig, rund, organisch, orthogonal, weiss, schwarz, blau, grün, gelb...
ich ziele darauf ab, dass ich später eben auch nochmal etwas ergänzen kann, was dann im Upload-Formular UND in der Visualisierung geändert wird, habe aber das ungute Gefühl, dass das der falsche Ansatz ist und will es nicht ausprobieren, weil alleine das Erstellen der CHARAKTERISTIK-Tabelle Stunden dauern wird.
Danke schonmal & Schöne Grüße,
Hans
Das sind sehr unterschiedliche Eigenschaften, die da bestimmt werden müssen. Farbigkeit - dort kann man mehrere Sachen auswählen. Komplex wird es aber bei sachen wie der Form: Die ist dann z.B. „eher organisch“ (was dann z.B. „rechtwinklig/orhogonal“ ausschliesst) UND „neu“ statt „bekannt“ UND ganz vielen anderen Abhänigkeiten.
Hier ist ein sehr früher Mock-Up http://topotropic.de/superstyle/intern_u...oad03.html
Jetzt möchte ich einen Prototypen mit PHP/MYSQL bauen und weiss aber nicht so recht, wie man am besten bei so etwas vorgeht.
Meine aktuelle Strategie wäre: 2 Tabellen, BILDER, CHARAKTERISTIK
BILDER: uploadedimage, dateuploaded, designer, year, characterid
CHARAKTERISTIK: id, eckig, rund, organisch, orthogonal, weiss, schwarz, blau, grün, gelb...
ich ziele darauf ab, dass ich später eben auch nochmal etwas ergänzen kann, was dann im Upload-Formular UND in der Visualisierung geändert wird, habe aber das ungute Gefühl, dass das der falsche Ansatz ist und will es nicht ausprobieren, weil alleine das Erstellen der CHARAKTERISTIK-Tabelle Stunden dauern wird.
Danke schonmal & Schöne Grüße,
Hans
die Verknuepfung soll n zu n sein? Also ein Bild kann beliebig viele Charakteristiken haben und eine Charakteristik kann beliebig vielen Bildern zugeordnet sein?
dann muss man noch eine Zwischentabelle einziehen „BildCharakteristik“ die eine Bild und eine Charakteristiken-Id enthaelt. Dann ist Zuweisung schonmal klar.
Dann wuerde ich noch eine Tabelle mit den Charakteristikentypen anlegen. Form, Farbe, Zeug. Diese Gruppen haben einen Namen und einen „Schalter“ der festlegt ob eine Charakteristik exklusiv ist, also nur eine aus der Kategorie vergeben werden darf.
Also 4 Tabellen
BILDER
- bildid
- uploadedimage,
- dateuploaded,
- designer,
- year
CHARAKTERISTIK
- charid
- name
- chargroupid
CHARGROUP
- chargroupid
- name
- exklusiv
BILDCHARAKTERISTIK
- bildid
- charid
dann muss man noch eine Zwischentabelle einziehen „BildCharakteristik“ die eine Bild und eine Charakteristiken-Id enthaelt. Dann ist Zuweisung schonmal klar.
Dann wuerde ich noch eine Tabelle mit den Charakteristikentypen anlegen. Form, Farbe, Zeug. Diese Gruppen haben einen Namen und einen „Schalter“ der festlegt ob eine Charakteristik exklusiv ist, also nur eine aus der Kategorie vergeben werden darf.
Also 4 Tabellen
BILDER
- bildid
- uploadedimage,
- dateuploaded,
- designer,
- year
CHARAKTERISTIK
- charid
- name
- chargroupid
CHARGROUP
- chargroupid
- name
- exklusiv
BILDCHARAKTERISTIK
- bildid
- charid
Danke kasn. Ich glaube ich habs fast verstanden. Eine kleine Sache ist mir noch unklar:
In der Tabelle BILDCHARAKTERISTIK – muss ich dort dann die zutreffenden Eigenschaften des Bilds einfach als String eintragen, mit den entsprechenden charids – getrennt durch z.B. ein Semikolon?
Also ungefähr so:
bildid = 1
charid = 2; 4; 13; 32; 44;
oder ist es noch besser die CHARAKTERISTIK Tabelle so anzulegen, dass die einzelnen Eigenschaften Spalten (Boolean?) sind und ich bei charid dann die entsprechende Zeile eintrage? Das fühlt sich für mich als Laie richtiger an, riecht aber auch nach Ärger und ist vielleicht weniger flexibel?
Danke dir auf jedenfall vielmals - schon jetzt sehr viel Übersichtlicher!
In der Tabelle BILDCHARAKTERISTIK – muss ich dort dann die zutreffenden Eigenschaften des Bilds einfach als String eintragen, mit den entsprechenden charids – getrennt durch z.B. ein Semikolon?
Also ungefähr so:
bildid = 1
charid = 2; 4; 13; 32; 44;
oder ist es noch besser die CHARAKTERISTIK Tabelle so anzulegen, dass die einzelnen Eigenschaften Spalten (Boolean?) sind und ich bei charid dann die entsprechende Zeile eintrage? Das fühlt sich für mich als Laie richtiger an, riecht aber auch nach Ärger und ist vielleicht weniger flexibel?
Danke dir auf jedenfall vielmals - schon jetzt sehr viel Übersichtlicher!
Für mich als Laien, der in seiner Laienhaftigkeit immer versucht, möglichst wenige Tabellen zu verwenden, stellt sich die Frage, ob es irgendeinen Vorteil birgt, stattdessen möglichst viele Tabellen zu verwenden.
Ist das dann performanter, oder sowas?
Ist das dann performanter, oder sowas?
honsey schrieb am 25.01.09, 00:09 Uhr:bildid = 1
In der Tabelle BILDCHARAKTERISTIK – muss ich dort dann die zutreffenden Eigenschaften des Bilds einfach als String eintragen, mit den entsprechenden charids – getrennt durch z.B. ein Semikolon?
Also ungefähr so:
bildid = 1
charid = 2; 4; 13; 32; 44;
charid = 2
bildid = 1
charid = 4
bildid = 1
charid = 13
bildid = 1
charid = 32
bildid = 1
charid = 44
also pro Zuordnung hast du dort eine Datensatz.
Rusty: im konkreten Fall waere das durchaus schneller. Bei einer Suchen nach allen Bildern mit einer gewissen Charakteristik muss man nur eine Integersuche auf eine recht einfache Tabelle machen. (SELECT * FROM BILDCHARAKTERISTIK WHERE charid = x) Wenn die Charakteristiken aber kommagrennt gespeichert werden muss eine relativ teure Stringsuche verwendet werden. (SELECT * FROM BILDER WHERE CHARAKTERISTIK like '%,n,%')
