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:07] – [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 27: Line 63:
   * Name (''name'') : Ausgeschriebener Name des Attributs (z.B. Ausgangsstrom)   * Name (''name'') : Ausgeschriebener Name des Attributs (z.B. Ausgangsstrom)
   * Symbol (''symbol'') : Symbol bzw. Abkürzung für das Attribut (z.B. I<sub>out</sub>)   * Symbol (''symbol'') : Symbol bzw. Abkürzung für das Attribut (z.B. I<sub>out</sub>)
-  * Art (''value_type'') : Art des Attributs (NUMBER, TEXT, ENUM, FILE, URL, IMAGE)+  * Art (''value_type'') : Art des Attributs (s. [[part_db#attributarten|Attributarten]])
   * Einheit (''unit''): Einheit des Attributs (Fremdschlüssel aus Tabelle ''%%attribute__units%%'')   * Einheit (''unit''): Einheit des Attributs (Fremdschlüssel aus Tabelle ''%%attribute__units%%'')
 +
 +== Attributarten ==
  
 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.)  Je nach Art des Attributs kann die Darstellung in der GUI gewählt werden (Formatierung, Icon, etc.) 
 +
 +== Attributwertlisten ==
 +
 +Für jedes Attribut der Art ''ENUM'' gibt es in der Tabelle ''%%attribute__values%%'' einen oder mehrere Einträge, die 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 80: 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 96: 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.1444914477.txt.gz · Last modified: by konstantin