Antwort #1 am: 08. September 2017, 17:32:45
Vorschlag für Möglichkeit Decimal Filter:
CREATE TABLE `products_tags` (
`products_id` INT(11) NOT NULL,
`options_id` INT(11) NOT NULL,
`values_id` INT(11) NOT NULL,
`products_options_id` INT(11) NOT NULL DEFAULT '0',
`products_options_values_id` INT(11) NOT NULL DEFAULT '0',
`option_value_dec` DECIMAL(18,9) DEFAULT NULL
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
ALTER TABLE `products_tags`
ADD UNIQUE KEY `products_id` (`products_id`,`options_id`,`values_id`,`products_options_id`),
ADD KEY `idx_products_options_id` (`products_options_id`),
ADD KEY `idx_options_id` (`options_id`),
ADD KEY `idx_values_id` (`values_id`);
ggü. Originaltabelle geänderter Index:
`ALTER TABLE products_tags DROP INDEX idx_products_options_values;`
(Original ist ohne Unique-Index)
Für Artikeleigenschaften, bei denen Dezimalwerte benutzt werden sollen, z. B. Länge eines Holzstabs mit 0,98 m wird nun z. B. folgendes eingetragen:
INSERT INTO `products_tags` (`products_id`, `options_id`, `values_id`, `products_options_id`, `products_options_values_id`, `option_value_dec`) VALUES(1, 1, -1, 0, 0, '0.980000000');
values_id = -1 signalisiert das es sich nicht um eine Auswahl-Option handelt, sondern um einen Dezimalwert. Nun kann das Feld option_value_dec ausgelesen und angezeigt werden. Rest wie gehabt (todo: natürlich die entsprechenden Abfragen und Platzhalter).