User Tools

Site Tools


part_db

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
part_db [2015/10/15 15:09] – [Eigenschaften (Attribute)] konstantinpart_db [2017/07/27 10:52] (current) konstantin
Line 9: Line 9:
 Die Struktur der Datenbank lässt sich wie folgt zusammenfassen: Die Struktur der Datenbank lässt sich wie folgt zusammenfassen:
 //Gruppen von Dingen mit Eigenschaften.// //Gruppen von Dingen mit Eigenschaften.//
 +
 +Eigenschaften mit ihren Einheiten und Werten werden über die ''%%attributes__%%''-Tabellen definiert.
 +Die Bezugsquelle hat eine Sonderrolle und wird nicht in Attributen sondern in einer eigenen Tabelle (''distributors'') abgelegt.
 +
 +Die äussere Form der Teile erhält ebenfalls eine Sonderrolle und wird über die ''%%shape__%%''-Tabellen detailliert.
 +
 +Die Zuordnung von Attributen, Distributoren und der Form erfolgt über Relationstabellen mit Fremdschlüsseln.
 +
 +=== Benennungskonventionen===
 +
 +Die folgenden Konventionen zur Bennenung von Tabellen und Schlüsseln dienen der Übersichtlichkeit. Sie sind, soweit möglich, strikt einzuhalten.
 +
 +== Tabellen ==
 +
 +In Tabellennamen werden die Worte mit Unterstrichen getrennt. Der Gruppenname von Tabellen wird mit zwei Unterstrichen vom Rest des Namens getrennt um in phpMyAdmin die Ordnerdarstellung zu ermöglichen.
 +
 +Z.B.:\\
 +''part''\\
 +''%%part__variant%%''\\
 +''%%part__variant_alternative%%''
 +
 +== Schlüssel ==
 +
 +Keys:
 +
 +''key:tablename.field''
 +
 +Unique Keys:
 +
 +''idx:tablename.field1,field2,...,fieldN''
 +
 +Foreign Keys:
 +
 +''fk:referencingTable.referencingField>referencedTable.referencedField''
 +
 +(Die > zwischen ''referencingField'' und ''referencedTable'' beachten.)
  
 ==== Eigenschaften (Attribute) ==== ==== Eigenschaften (Attribute) ====
Line 34: Line 70:
 Die Art des Attributs kann eine der folgenden sein: Die Art des Attributs kann eine der folgenden sein:
  
-  * NUMBER : Eine Zahl (int oder float) +  * ''NUMBER'' : Eine Zahl (int oder float) 
-  * TEXT   : Eine Zeichenkette +  * ''TEXT''   : Eine Zeichenkette 
-  * ENUM   : Ein Wert aus einer Liste (s. [[part_db#Attributwertlisten|Attributwertlisten]]) +  * ''ENUM''   : Ein Wert aus einer Liste (s. [[part_db#Attributwertlisten|Attributwertlisten]]) 
-  * IMAGE  : Ein Bild (Falls nur Dateiname: lokal abgelegtes Bild in einem Ordner mit Namen des Attributs) +  * ''IMAGE''  : Ein Bild (Falls nur Dateiname: lokal abgelegtes Bild in einem Ordner mit Namen des Attributs) 
-  * FILE   : Eine Datei (Falls nur Dateiname: lokal abgelegte Datei in einem Ordner mit Namen des Attributs) +  * ''FILE''   : Eine Datei (Falls nur Dateiname: lokal abgelegte Datei in einem Ordner mit Namen des Attributs) 
-  * URL    : Eine URL+  * ''URL''    : Eine URL 
 + 
 +Je nach Art des Attributs kann die Darstellung in der GUI gewählt werden (Formatierung, Icon, etc.) 
  
 == Attributwertlisten == == Attributwertlisten ==
  
-Je nach Art des Attributs kann die Darstellung in der GUI gewählt werden (FormatierungIcon, etc.) +Für jedes Attribut der Art ''ENUM'' gibt es in der Tabelle ''%%attribute__values%%'' einen oder mehrere Einträgedie die Auswahlmöglichkeiten definieren. 
 + 
 +Jeder Eintrag dieser Tabelle hat die Felder: 
 + 
 +  * Attribut (''attribute''): Attribut zu dem der Wert gehört (z.B. Farbe) 
 +  * Wert (''value''): Einer der Werte für dieses Attribut (z.B. Blau) 
 + 
 +Bei Attributen mit (einigermaßem) kleinem Wertebereich ist es sinnvoll, die möglichen Werte fest zu hinterlegen. So werden doppelte Einträge durch Unterschiede in der Schreibweise vermieden.
 ==== Typgruppen & Typen ==== ==== Typgruppen & Typen ====
  
Line 84: Line 129:
 Teiletypen referenzieren eine Formtypgruppe (s. [[part_db#Typen|Typen]]) Teiletypen referenzieren eine Formtypgruppe (s. [[part_db#Typen|Typen]])
  
-===== Part Shape Rendernames =====+===== Teil Form Anzeigenamen =====
  
-Die Rendernames von Part- und Shapetypen definieren wie die Bezeichnungen der Parts bzw. Shapes gerendert werden. +Die Anzeige von Teil- und Formtypen definieren wie die Bezeichnungen des Teils bzw. der Form in der GUI dargestellt werden. Sie können aus den Namensfeldern und Attributen der jeweiligen Tabellen (Teil/Form) zusammengebaut werden.
  
-==== Part Rendernames ====+Anzeigenamen sind hierarchisch aufgebaut. Eine Ebene kann jeweils nur die Felder der darunterliegenden Ebene benutzen. Attribute können aus allen Ebenen genutzt werden. 
 + 
 +==== Syntax ==== 
 +**Felder** {'field':'<feldname>'} : z.B: {'field':'shape-variant-shortname'
 + 
 +Wird durch den Wert des entsprechenden Feldes ersetzt. 
 + 
 +**Attribute** {'attr':'<attribut-name>'} : z.B. {'attr':'Durchmesser'
 + 
 +Wird durch den Wert des entsprechenden Attributes inkl. Einheit ersetzt. 
 + 
 +**Attribute mit Formatierung** {'attr':'<attribut-name>','format':'<formatstring>,'factor':<factor>} : z.B. {'attr':'Durchmesser','format':'<min>','factor':1000} 
 + 
 +Wird durch den Wert des Formatstrings ersetzt. Der Formatstring kann die folgenden Platzhalter enthalten: 
 + 
 +  * <min> : Minimum des Attributs, Multipliziert mit dem <factor>, sofern angegeben 
 +  * <max> : Maximum des Attributs (sofern vorhanden), Multipliziert mit dem <factor>, sofern angegeben) 
 +  * <unit>: Einheit des Attributs (sofern vorhanden) 
 +  * <symbol>: Einheitensymbol des Attributs (sofern vorhanden) 
 + 
 +Falls ein Feld oder Attribut nicht vorhanden ist, wird nichts angezeigt. 
 + 
 +==== Teil Anzeigenamen ====
  
 Beispiel: Beispiel:
  
-Rendername des Parttyps ''Widerstand'' : {partname} {attr:'Widerstand'} ({attr:'Toleranz'})+Anzeigename des Teiletyps ''Widerstand'' : {'field':'value'} {'attr':'Widerstand'} ({'attr':'Toleranz'})
  
 **PartTypeGroup**: Passive Elemente\\ **PartTypeGroup**: Passive Elemente\\
Line 100: Line 167:
 **Attribute**    : Widerstand=10kΩ, Art=Dickschicht, Toleranz=5%, etc.\\ **Attribute**    : Widerstand=10kΩ, Art=Dickschicht, Toleranz=5%, etc.\\
  
-Renderergebnis => Kohleschichtwiderstand 10kΩ (5%)+Anzeigeergebniss => Kohleschichtwiderstand 10kΩ (5%)
  
-==== Shape Rendernames ====+==== Form Anzeigenamen ====
  
-**Shapetype** hat  +**Formtyp** hat  
-  * //Name//       : Name des Shapetypes (zum Referenzieren) +  * //Name//       : Name des Formtyps (zum Referenzieren) 
-  * //Rendername// : Labeldefinition für Shapes dieses Typs (kann Shape-long/shortname und Shape/Shapevariant-Attribute benutzen)+  * //Rendername// : Labeldefinition für Formen dieses Typs
  
-**Shape** hat +**Form** hat 
-  * //Longname//  : Kann Shapevariant-long/shortname und Shape/Shapevariant-Attribute benutzen  +  * //Longname//  : Kann Formvariante-long/shortname und Form/Formvariante-Attribute benutzen  
-  * //Shortname// : Kann Shapevariant-long/shortname und Shape/Shapevariant-Attribute benutzen +  * //Shortname// : Kann Formvariante-long/shortname und Form/Formvariante-Attribute benutzen 
  
-**Shapevariant** hat +**Formvariante** hat 
-  * //Longname // : Kann Shape/Shapevariant-Attribute benutzen  +  * //Longname // : Kann Form/Formvariante-Attribute benutzen  
-  * //Shortname// : Kann Shape/Shapevariant-Attribute benutzen+  * //Shortname// : Kann Form/Formvariante-Attribute benutzen
  
  
-==== Syntax ==== 
-**Felder** {<feldname>} : z.B: {var-shortname}\\ 
-**Attribute** {attr:'<attribut-name>'} : z.B. {attr:'Durchmesser'} 
  
-Falls Attribut nicht vorhanden, nichts anzeigen. 
part_db.1444914546.txt.gz · Last modified: (external edit)