Liebes Forum ich erstelle eine Tabelle, bei der ein Eintrag nur wahr oder falsch sein kann. Ein typischer Fall für boolean. Nun gibt es in den Standardtabellen von Shopware eigentlich nie den Typ boolean bzw. tinyint(1) (ich habe mir jetzt nicht jede Tabelle angesehen, sondern nur ein paar wichtige). Gibt es dafür einen Grund ? Bzw. gibt es einen Grund dafür, dass ich es auch nicht machen sollte? (die Performance wäre ja mit boolean etwas besser). (dass es in MySQL gar kein echtes boolean gibt, sondern dass dies nur ein Alias von tinyint(1) ist, ist ein anderes Thema). Liebe Grüße Kerstin
Hi, nein, du kannst ruhig ein tinyint nehmen, da spricht eigentlich nichts dagegen. Wenn du in Doctrine ein Boolean definierst, bekommst du das ja auch. lG Daniel
Hallo Daniel, ganz vielen Dank. Meinst du mit Doctrine so etwas hier? $sql = "CREATE TABLE IF NOT EXISTS `test` ( `id` int(11) NOT NULL AUTO\_INCREMENT, `state` boolean, PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8\_unicode\_ci AUTO\_INCREMENT=1;"; Shopware()-\>Db()-\>query($sql);
Da ist allerdings ‘state’ auch tinyint. Liebe Grüße Kerstin
Hi, nein, ich meine unser ORM, etwa hier: engine/Shopware/Models/Article/Article.php:131 Das ist bei uns in der DB ja bspw. ein INT(1). Und wenn du direkt mit Doctrine die Datenstruktur erzeugt, legt der meines Wissens sogar tinyints an (http://doctrine-orm.readthedocs.org/en/ … pping.html). lG Daniel