Example #1
0
 private static function createElementsTable()
 {
     $query = 'CREATE TABLE `' . self::elementsTableName() . '` (';
     $query .= '`parent_id` BIGINT UNSIGNED NOT NULL, ';
     $query .= '`element_id` BIGINT UNSIGNED NOT NULL, ';
     $query .= '`manual_order` BIGINT UNSIGNED NOT NULL, ';
     $query .= 'PRIMARY KEY (`parent_id`, `element_id`)';
     //// TODO: Put foreign key constraints back when creation of tables can have topological order imposed.
     //if ($type != __CLASS__)
     //	$query .= ', FOREIGN KEY (`parent_id`, `element_id`) REFERENCES `' . self::elementsTableName($class->getParentClass()->getName()) . '` (`parent_id`, `element_id`) ON DELETE CASCADE';
     $query .= ') engine=' . Options::dbEngine() . ';';
     Database::query($query, "Set elements table");
 }
Example #2
0
 private static function createTable($type)
 {
     $class = new ReflectionClass($type);
     $columns = $class->getStaticPropertyValue('columns', array());
     $columns['id'] = 'identifier';
     $declarations = "";
     foreach ($columns as $name => $typeName) {
         $declarations .= "`{$name}` " . Type::get($typeName)->mySqlName() . ", ";
     }
     $query = "CREATE TABLE `" . self::tableName($type) . "` (";
     $query .= $declarations;
     $query .= "PRIMARY KEY (`id`)";
     //// TODO: Put foreign key constraints back when creation of tables can have topological order imposed.
     //if ($type != __CLASS__)
     //	$query .= ", FOREIGN KEY (`id`) REFERENCES `" . self::tableName($class->getParentClass()->getName()) . "` (`id`) ON DELETE CASCADE";
     $query .= ") engine=" . Options::dbEngine() . ";";
     Database::query($query, "{$type} table");
 }