Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
PHP Puzzles. Авторы: Кузнецов М.В., Симдянов И.В. MySQL на примерах. Авторы: Кузнецов М.В., Симдянов И.В. Социальная инженерия и социальные хакеры. Авторы: Кузнецов М.В., Симдянов И.В. PHP на примерах (2 издание). Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель MySQL 5. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум MySQL

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Varchar или Tinytext?
 
 автор: rusbi   (29.06.2007 в 07:38)   письмо автору
 
 

В книгах часто встречаются ситуации, когда создается таблицу напрмер с тремя полями name, email, url. При этом, для name выбирается тип столбца varchar, а для name и url - tinytext?

Если не сложно, объясните когда нужно брать tinytext, а когда varchar и почему.

   
 
 автор: sasch   (29.06.2007 в 07:59)   письмо автору
 
   для: rusbi   (29.06.2007 в 07:38)
 

tinytext - max. кол-во символов до 255 (думаю то, что надо для URL)
varchar - может иметь произвольную длину. Вам ее и указывать.

   
 
 автор: rusbi   (29.06.2007 в 08:08)   письмо автору
 
   для: sasch   (29.06.2007 в 07:59)
 

Так varchar тоже может иметь макс - 255 символов, просто как я понял у varchar нужно обязательно указывать длину, а у tinytext не обязательно.

   
 
 автор: sasch   (29.06.2007 в 08:15)   письмо автору
 
   для: rusbi   (29.06.2007 в 08:08)
 

Вам ведь заведомо не известно сколько символов будет в URL-e. По-этому и tinytext. (Гадать, думаю не стоит)
А с name более или менее угадать можно. (Уж точно меньше чем в URL).

   
 
 автор: rusbi   (29.06.2007 в 08:20)   письмо автору
 
   для: sasch   (29.06.2007 в 08:15)
 

>Вам ведь заведомо не известно сколько символов будет в URL-e. По-этому и tinytext.

Так то да, но ведь и для имени мы тоже заведо не знаем сколько будет символов (имена тоже разные бывают), однако же для имени указывается varchar(20), а для url просто tinytext. Хотя, наверное это не так и важно и не будет большой беды если поставить например вместо tinytext тип поля varchar(255).

   
 
 автор: sasch   (29.06.2007 в 08:20)   письмо автору
 
   для: sasch   (29.06.2007 в 08:15)
 

>>> просто как я понял у varchar нужно обязательно указывать длину
Да. varchar(число)

   
 
 автор: Ralph   (29.06.2007 в 08:41)   письмо автору
 
   для: sasch   (29.06.2007 в 08:20)
 

"Столбцы типов BLOB и TEXT могут индексироваться в версии MySQL 3.23.2 и более новых. В столбцах типов BLOB и TEXT не производится удаление концевых символов, как это делается для столбцов типа VARCHAR.
Для столбцов BLOB и TEXT не может быть задан атрибут DEFAULT- значения величин по умолчанию... Следует учитывать, что внутренним представлением любой величины типа BLOB или TEXT является отдельно размещенный объект - в противоположность всем остальным типам столбцов, для которых память выделяется нно для столбца при открытии таблицы.

B или TEXT является отдельно размещенный объект - в противоположность всем остальным типам столбцов, для которых память выделяется единовременно для столбца при открытии таблицы.
"

   
 
 автор: sapEngine   (29.06.2007 в 08:32)   письмо автору
 
   для: rusbi   (29.06.2007 в 08:08)
 

по книге SoftTime'овцев
специальный индекс FULLTEXT поддерживается для таблиц MyISAM столбцов типа char, varchar и text

т.е. получается если хотите использовать FULLTEXT то соответственно столбец varchar должен быть,
если же не планируете FULLTEXT, то можно и tinytext

   
 
 автор: rusbi   (29.06.2007 в 08:37)   письмо автору
 
   для: sapEngine   (29.06.2007 в 08:32)
 

По их книгам занимаюсь. Видимо действительно, ещё в индексах дело. Спасибо всем за ответы!

   
 
 автор: Trianon   (29.06.2007 в 09:53)   письмо автору
 
   для: rusbi   (29.06.2007 в 07:38)
 

обычно varchar применяется для ключевых полей, лидирующие и хвостовые пробелы в которых могут обрезаться.

text - для полей с данными, для которых важно точное - до последнего пробела - хранение содержимого.

применять tinytext, как правило, неоправданно, кроме случаев, очень коротких строк.
Для URI, например, просто нельзя. Какой смысл экономить один - три байта?

   
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования