* FieldType 에서 table 스키마 를 정의 하기위해 사용 * AbstractFieldType class 의 columns 멤버 변수의 항목들을 ColumnEntity class 로 구성
Author: XE Developers (developers@xpressengine.com)
Inheritance: extends Xpressengine\Support\Entity
 /**
  * DynamicField 는 기본으로 'id' 컬럼과 조인하도록 설정된다.
  * JoinColumn 정보가 없을 경우 기본 컬럼인 'id' 컬럼을 생성하여 리턴한다.
  *
  * @return ColumnEntity
  */
 private function getDefaultJoinColumn()
 {
     $column = new ColumnEntity(ConfigHandler::DEFAULT_JOIN_COLUMN_NAME, ColumnDataType::STRING);
     $column->setParams(array(36));
     return $column;
 }
 /**
  * Dynamic Field Type revision 테이블 생성
  *
  * @param ColumnEntity $column join column entity
  * @return void
  */
 private function createRevisionTable(ColumnEntity $column)
 {
     // create revision table
     if ($this->config->get('revision') === true) {
         $self = $this;
         $this->handler->connection()->getSchemaBuilder()->create($this->handler->getConfigHandler()->getRevisionTableName($this->config), function (Blueprint $table) use($column, $self) {
             $table->string('revisionId', 255);
             $table->integer('revisionNo')->default(0);
             $column->add($table);
             /**
              * @var ColumnEntity $addColumn
              */
             foreach ($self->getColumns() as $addColumn) {
                 $addColumn->add($table, $self->config->get('id') . '_');
             }
             $table->primary(array('revisionId'), 'primaryKey');
             $table->index($column->name, $column->name);
         });
     }
 }