Комментарии

Типы данных MySQL
( 0 Голосов )

 

Как правило, выбор типа данных для столбца таблицы не составляет большого труда. Ниже дается краткое описание типов данных, наиболее употребительных в приложениях Joomla.

ТИП ДАННЫХ INT/INTEGER

Обозначения INT и INTEGER фактически ссылаются на один и тот же целочисленный тип данных. Как пояснялось ранее, этот тип данных обычно выбирается для первичных ключей, где требуется однозначность идентификатора строки в таблице. Этот тип данных следует также выбирать для обозначения ключа в другой таблице. Например, столбец catid служит для ссылки на столбец id в нескольких таблицах, в том числе # content и # contacts. Поэтому для столбца catid выбирается тип данных INT, чтобы он со впадал с типом данных идентификатора в таблице # categories.

Тип данных INT может быть как со знаком (для обозначения положительных и отрицательных значений), так и без знака (для обозначения только положительных значений). Если в определении столбца указывается атрибут AUTO_INCREMENT, то тип INT его данных всегда оказывается без знака. Иногда в коде сценариев базы данных можно встретить обозначение INT (10) типа данных INT или INTEGER. В этом случае число 10 обозначает, насколько крупным следует отображать столбец в запросе. Оно не имеет никакого отношения к максимальному значению, хранящемуся в данном столбце.

ТИП ДАННЫХ TINYINT

Тип данных TINYINT похож на тип данных INT, за исключением того, что в нем допускаются числовые значения только в пределах от -127 до +127 (или от 0 до 255). Этот тип данных применяется в тех столбцах, где присутствует небольшое количество действительных значений, например, состояние "опубликовано" или условия подтверждения/отрицания. Применение целочисленных числовых значений данного типа дает два важных преимущества над текстовыми строками типа VARCHAR. Во-первых, при выборке целых значений из такого ненадежного источника, как форма или URL, их легко подвергнуть дополнительной обработке в коде РНР и, в частности, привести их к целочисленному типу с помощью оператора (int). Во-вторых, любые слова, используемые в приложениях Joomla, как правило, требуется переводить на выбранный язык. Для этого целые значения нетрудно связать с языковыми ключами, придав соответствующим значениям нейтральный смысл, переводимый на каждый язык.

ТИП ДАННЫХ VARCHAR

Этот тип данных служит для хранения текстовых полей заданной длины вплоть до 21844 символов. Максимально допустимое количество символов указывается в виде числа в круглых скобках. Например, тип VARCHAR (20) допускает вводить в текстовом поле до 20 символов. Столбцы типа VARCHAR имеют переменную длину, используя лишь то место, которое требуется для хранения введенных данных. Так, если столбец имеет тип VARCHAR (100), но в нем введено всего семь символов, на диске выделяется место для хранения только этих семи символов.

Как пояснялось ранее, для всех таблиц базы данных в Joomla выбирается набор символов в коде UTF-8 (CHARSET=utf 8). А поскольку символы в коде UTF-8 могут занимать до трех байтов на один символ, то максимальный размер столбцов типа VARCHAR составляет 21844 символа вместо 65535 символов для латинского алфавита.

ТИП ДАННЫХ CHAR

В столбцах типа CHAR также могут храниться текстовые поля, но фиксированной длины. Поэтому в столбце типа CHAR (100) всегда используется место для хранения 100 символов. Максимальный размер поля типа CHAR составляет 255 символов. В Joomla тип данных CHAR используется редко, вместо него чаще применяется тип данных VARCHAR.

ТИП ДАННЫХ DATETIME

Этот тип данных соответствует своему названию и служит для хранения даты и времени в формате "ГТ-ММ-ДД ЧЧ :ММ: СС". Имеется также тип данных DATE на тот случай, если требуется сохранить только дату, но не время. Впрочем, дату нетрудно извлечь из столбца типа DATETIME, воспользовавшись функцией date ().

ТИП ДАННЫХ TEXT

Этот тип данных похож на тип данных VARCHAR, за исключением того, что он всегда предусматривает сохранение до 65000 символов. В Joomla данные типа TEXT хранятся в столбцах, длина которых может быть, например, от 2000 до 10000 символов. К их числу относятся столбцы с параметрами (в формате JSON) и ключевыми словами. Если же столбец индексируется, то он, как правило, должен быть типа VARCHAR, а не TEXT.

ТИП ДАННЫХ MEDITJMTEXT

Этот тип данных похож на тип данных TEXT, за исключением того, что он поддерживает максимальную длину столбца около 16 Мбайт. Создание и видоизменение таблицы по командам DDL 455 лишь в том случае, если длина текстового столбца может оказаться очень большой. В Joomla он используется, например, для хранения текста статей и описания категорий.

ТИП ДАННЫХ DECIMAL

Если требуется отслеживать точные десятичные числовые значения, например денежные суммы, то для этой цели служит тип данных DECIMAL. Например, для хранения денежных сумм в долларах США с точностью до двух знаков после десятичной точки и не больше 9,999,999,999.99 можно выбрать тип данных DECIMAL (10, 2).

ТИП ДАННЫХ FLOAT и DOUBLE

Тип данных FLOAT служит для научных расчетов, где требуется достаточно большая точность. Этот тип данных обеспечивает точность до 23 значащих цифр, тогда как тип данных DOUBLE — до 53 значащих цифр. Типами данных FLOAT и DOUBLE не следует пользоваться для получения точных величин с фиксированным числом десятичных разрядов. Вместо них лучше выбрать тип данных DECIMAL. Ведь если выбрать тип данных FLOAT для хранения денежных сумм, то в результате их округления могут возникнуть мелкие погрешности, которые очень трудно уловить.

 


Понравился материал? Пригодилась информация? Плюсани в социалки!


 
Похожие новости