# Модель `DataBaseColumn` Класс `DataBaseColumn` предназначен для описания структуры отдельной колонки в базе данных. Он предоставляет подробную информацию о характеристиках колонки, таких как тип данных, ограничения на значения, связи с другими таблицами и многое другое. ## Пространство имён ```php namespace goodboyalex\php_db_components_pack\models; ``` ## Автор и версия - **Автор**: Александр Бабаев - **Версия**: 1.0 - **Дата начала поддержки**: с версии 1.0 ## Назначение Класс `DataBaseColumn` используется для точного описания характеристик колонки в базе данных. Он позволяет указать тип данных, длину, обязательность, уникальность, наличие первичного ключа, внешний ключ, проверку данных и прочие аспекты, влияющие на корректную работу с базой данных. ## Основные элементы класса ### Поля ## Поля класса `DataBaseColumn` | Имя поля | Тип поля | Описание | |-----------------|------------------|--------------------------------------------------------------------------------------------------------------------------------| | Name | string | Имя колонки в базе данных. | | Type | Tuple | Тип данных колонки, где первый элемент — тип данных (например, `DBType::STRING`), второй — максимальная длина (например, 255). | | IsNotNull | bool | Признак, указывающий, разрешена ли установка значения `NULL` в колонку. | | IsUnique | bool | Признак, указывающий, что каждое значение в колонке должно быть уникальным. | | IsPrimaryKey | bool | Признак, указывающий, что колонка является первичным ключом. | | ForeignWith | Tuple | Внешний ключ, связанный с другой таблицей, где первый элемент — имя таблицы, второй — имя колонки. | | Check | ConditionBuilder | Контрольные условия для вносимых данных, представлены объектом `ConditionBuilder`. | | Default | mixed | Значение по умолчанию для колонки. Может быть любого подходящего типа данных. | | IsAutoIncrement | bool | Признак, указывающий, что значение колонки генерируется автоматически при добавлении новой записи (авто-инкремент). | ### Конструктор Позволяет задать полную конфигурацию колонки, включая имя, тип данных, ограничения и связи. ## Пример использования Допустим, у вас есть таблица пользователей, и вы хотите описать колонку с именем пользователя следующим образом: ```php use goodboyalex\php_db_components_pack\models\DataBaseColumn; use goodboyalex\php_db_components_pack\enums\DBType; // Создаём объект колонки $column = new DataBaseColumn( // Имя колонки 'username', // Тип данных (строка, максимум 255 символов) new Tuple(DBType::STRING, 255), // Запрет пустых значений (NOT NULL) true, // Уникальные значения (UNIQUE) true, // Не является первичным ключом false, // Без внешнего ключа new Tuple(null, null), // Без проверок new ConditionBuilder(), // Значение по умолчанию (пустая строка) '', // Авто-инкремент отключён false ); ``` ## Дополнительная информация Класс `DataBaseColumn` является мощным инструментом для детализации структуры колонок базы данных. Он предоставляет широкие возможности для настройки различных аспектов колонки, таких как тип данных, ограничения, связи и прочее. Это существенно облегчает работу с базой данных и способствует повышению качества проектирования моделей данных. [На главную](../../index.md)