95 lines
4.5 KiB
PHP
95 lines
4.5 KiB
PHP
<?php
|
||
|
||
namespace goodboyalex\php_db_components_pack\models;
|
||
|
||
use goodboyalex\php_components_pack\classes\Tuple;
|
||
use goodboyalex\php_db_components_pack\classes\ConditionBuilder;
|
||
use goodboyalex\php_db_components_pack\enums\DBType;
|
||
|
||
/**
|
||
* Класс, описывающий структуру колонки.
|
||
*
|
||
* @author Александр Бабаев
|
||
* @package php_db_components_pack
|
||
* @version 1.0
|
||
* @since 1.0
|
||
*/
|
||
final class DataBaseColumn
|
||
{
|
||
/**
|
||
* @var string $Name Имя колонки.
|
||
*/
|
||
public string $Name;
|
||
|
||
/**
|
||
* @var Tuple $Type Тип данных (DBType тип, int максимальная длина).
|
||
*/
|
||
public Tuple $Type;
|
||
|
||
/**
|
||
* @var bool $IsNotNull Запрещено ли вставлять пустые (NULL) значения в указанное поле.
|
||
*/
|
||
public bool $IsNotNull;
|
||
|
||
/**
|
||
* @var bool $IsUnique Обеспечивает уникальность каждого значения в данном поле.
|
||
*/
|
||
public bool $IsUnique;
|
||
|
||
/**
|
||
* @var bool $IsPrimaryKey Устанавливается на одно или несколько полей, гарантирующих уникальную идентификацию
|
||
* каждой записи в таблице.
|
||
*/
|
||
public bool $IsPrimaryKey;
|
||
|
||
/**
|
||
* @var Tuple $ForeignWith Связь с другой таблицей (string имя_таблицы, string имя_поля).
|
||
*/
|
||
public Tuple $ForeignWith;
|
||
|
||
/**
|
||
* @var ConditionBuilder $Check Параметры проверки введённого значения на соблюдение некоторого условия.
|
||
*/
|
||
public ConditionBuilder $Check;
|
||
|
||
/**
|
||
* @var mixed $Default Задаёт значение по умолчанию.
|
||
*/
|
||
public mixed $Default;
|
||
|
||
/**
|
||
* @var bool $IsAutoIncrement Автоматически генерирует уникальное значение каждый раз при создании новой записи.
|
||
*/
|
||
public bool $IsAutoIncrement;
|
||
|
||
/**
|
||
* Конструктор.
|
||
*
|
||
* @param string $name Имя колонки.
|
||
* @param Tuple $type Тип данных (DBType тип, int максимальная длина).
|
||
* @param bool $isNotNull Запрещено ли вставлять пустые (NULL) значения в указанное поле.
|
||
* @param bool $isUnique Обеспечивает уникальность каждого значения в данном поле.
|
||
* @param bool $isPrimaryKey Устанавливается на одно или несколько полей, гарантирующих уникальную
|
||
* идентификацию каждой записи в таблице.
|
||
* @param Tuple $foreignWith Связь с другой таблицей (string имя_таблицы, string имя_поля).
|
||
* @param ConditionBuilder $check Параметры проверки введённого значения на соблюдение некоторого условия.
|
||
* @param mixed|null $default Задаёт значение по умолчанию.
|
||
* @param bool $isAutoIncrement Автоматически генерирует уникальное значение каждый раз при создании новой
|
||
* записи.
|
||
*/
|
||
public function __construct (string $name = "", Tuple $type = new Tuple(DBType::STRING, 255),
|
||
bool $isNotNull = false, bool $isUnique = false, bool $isPrimaryKey = false,
|
||
Tuple $foreignWith = new Tuple(null, null), ConditionBuilder $check = new ConditionBuilder(),
|
||
mixed $default = null, bool $isAutoIncrement = false)
|
||
{
|
||
$this->Name = $name;
|
||
$this->Type = $type;
|
||
$this->IsNotNull = $isNotNull;
|
||
$this->IsUnique = $isUnique;
|
||
$this->IsPrimaryKey = $isPrimaryKey;
|
||
$this->ForeignWith = $foreignWith;
|
||
$this->Check = $check;
|
||
$this->Default = $default;
|
||
$this->IsAutoIncrement = $isAutoIncrement;
|
||
}
|
||
} |