Das sind doch gute Ansätze. Meine ursprüngliche Idee sah in etwa aus wie Timo's Entwurf. Ich habe das ganze jetzt mal ein bischen verquirlt und rausgekommenist bis jetzt das:
--
-- Tabellenstruktur für Tabelle `datatypes`
--
CREATE TABLE IF NOT EXISTS `datatypes` (
`datatype` VARCHAR(10) NOT NULL,
`datatype_validation` VARCHAR(100) NOT NULL,
PRIMARY KEY (`datatype`)
);
-- --------------------------------------------------------
--
-- Tabellenstruktur für Tabelle `products_properties`
--
CREATE TABLE IF NOT EXISTS `products_properties` (
`products_property_id` INT(11) NOT NULL AUTO_INCREMENT,
`property_group_id` INT(11) NOT NULL DEFAULT '0',
`multi_language` tinyint(4) NOT NULL DEFAULT '0',
`products_property_name` VARCHAR(30) NOT NULL,
`products_property_sort` INT(11) NOT NULL DEFAULT '0',
`products_property_status` tinyint(4) NOT NULL DEFAULT '0',
`products_property_datatype` VARCHAR(10) NOT NULL DEFAULT 'VARCHAR',
`products_property_validate` tinyint(4) NOT NULL DEFAULT '0',
PRIMARY KEY (`products_property_id`)
) AUTO_INCREMENT=1 ;
-- --------------------------------------------------------
--
-- Tabellenstruktur für Tabelle `products_properties_description`
--
CREATE TABLE IF NOT EXISTS `products_properties_description` (
`product_property_id` INT(11) NOT NULL,
`language_id` INT(11) NOT NULL,
`product_property_heading` VARCHAR(30) NOT NULL,
`product_property_description` VARCHAR(100) NOT NULL,
UNIQUE KEY `product_property_id` (`product_property_id`,`language_id`)
) ;
-- --------------------------------------------------------
--
-- Tabellenstruktur für Tabelle `products_properties_group`
--
CREATE TABLE IF NOT EXISTS `products_properties_group` (
`property_group_id` INT(11) NOT NULL AUTO_INCREMENT,
`property_group_name` VARCHAR(30) NOT NULL,
`property_group_status` tinyint(4) NOT NULL DEFAULT '0',
`property_group_sort` tinyint(4) NOT NULL DEFAULT '0',
PRIMARY KEY (`property_group_id`)
) AUTO_INCREMENT=1 ;
-- --------------------------------------------------------
--
-- Tabellenstruktur für Tabelle `products_properties_values`
--
CREATE TABLE IF NOT EXISTS `products_properties_values` (
`products_id` INT(11) NOT NULL,
`products_property_id` INT(11) NOT NULL,
`products_property_value` VARCHAR(255) NOT NULL,
UNIQUE KEY `products_id` (`products_id`,`products_property_id`)
) ;
-- --------------------------------------------------------
--
-- Tabellenstruktur für Tabelle `products_properties_values_ml`
--
CREATE TABLE IF NOT EXISTS `products_properties_values_ml` (
`products_id` INT(11) NOT NULL,
`products_property_id` INT(11) NOT NULL,
`language_id` INT(11) NOT NULL,
`products_property_value` VARCHAR(255) NOT NULL,
UNIQUE KEY `products_id` (`products_id`,`products_property_id`,`language_id`)
) ;
Ich habe mal ein Bild angehängt, um zu zeigen in welcher Beziehung die Tabellen zueinander stehen.
[ Für Gäste sind keine Dateianhänge sichtbar ]
Die Tabelle datatypes soll es ermöglichen den variablen Feldern einen bestimmten Datentyp mit zugeben, so dass ggf. damit auch gerechnet werden könnte. Das Feld datatype-validation könnte einen Regex-Ausdruck enthalten.
Ein mögliche Gruppierung der Eigenschatfen macht bei 50 und mehr bestimmt auch Sinn.
Meinungen?