Ich stehe grade voll im Wald. Ich will einfache Datenobjekte abspeichern. Die Objekte haben einfach ein paar Properties, die entweder ein String oder eine Zahl beinhalten, die ich ein einer zweiten Tabelle speicher. Quasi so:
Alternativ anstatt der letzten beiden Tabellen:
Für die erste Idee bräuchte ich sowas wie einen geteilten Fremdschlüssel, der je nach Typ woandershin zeigt. Für den zweiten Fall irgendein Constraint der immer dann meckert, wenn kein oder beide Value-Werte nicht NULL sind. So richtig gefallen mir beide Lösungen nicht, aber mir fällt nichts ein, wie ich das besser aufdröseln könnte. Hat jemand ne Idee, wie man das umsetzen kann ?
Code:
CREATE TABLE objects ( objectId INT , objectName VARCHAR(255) ); CREATE TABLE objectProperties ( propId INT , propName VARCHAR(255) , objectId INT , propType INT /* wäre hier z.B. 1 für Zahl und 2 für String */ ); CREATE TABLE objectNumbers ( propId INT , value INT ); CREATE TABLE objectStrings ( propId INT , value VARCHAR(255) );
Code:
CREATE TABLE objectValues ( propId INT , numberValue VARCHAR(255) , stringValue INT );