объясните по базам данных

Sad Spirit

мизантроп (Старожил PHPClub)
Команда форума
Sad Spirit
а) где ты увидел что ТС спрашивает про Postgres. Судя по его уточнению на твою мессагу, Postgres его волнует как раз мало.
Мы кагбэ общаемся в форуме "Похапэ и базы данных", а не в гетто для дельфинофилов.

в) ну из твоих расуждений следует, что создатели всех СУБД - тупые раз вводят кучу ненужных типов данных, нужно было как в PHP сделать текстовые поля, числовые, и т.п., и чтобы они конвертились автоматом.
Из моих рассуждений следует, что надо различать типы данных и высосанные из эээ... допустим, пальца ограничения на данные, а также оптимизацию-на-спичках. Булевы значения надо хранить в поле boolean, а не в tinyint / smallint / bigint, даты надо хранить в поле типа date (даты с нулевым месяцем хранить не надо нигде, ибо таких дат в календаре не бывает), интервалы времени --- в полях типа interval, адреса IP --- в полях типа inet, иногда опять же полезно использовать в базе массивы.

А вот решать, надо ли использовать varchar(128) или varchar(255) для хранения заголовка статьи, никакого наперёд заданного ограничения на длину которого скорее всего нету, и использовать ли для первичного ключа smallint или tinyint (а потом бежать в форум и спрашивать, что за странные ошибки об отсутствии уникальности) --- идиотизм.

Что касается твоего сайта, то это недостатки планирования, причем тут типы данных, если ты не мог представить что в подчинении может быть больше народа? А если бы ты в поле input сделал ограничение на 4 символа, тоже mysql был бы виноват? А то, что ты не использовал unsigned, скорее говорит о слабых знаниях MySQL на тот момент, так как вполне очевидно, что отрицательным количество подчиненных не может быть.
Ё-моё, ну вот я как раз об этом: не стал бы я оптимизировать на спичках, сделал поле integer, было бы всё нормально! А неиспользования unsigned говорит, в основном, о том, что MySQL я тоже не использовал. А когда мне надо сделать поле неотрицательным, я пишу для этого соответствующий constraint.

А с другой стороны я видел много довольно серьезных скриптов, в которых тупо все поля были INT или даже BIGINT, даже те в которых хранятся значения типа 0 или 1.
А не связано ли это --- случайно --- с тем, что в одной изрядно популярной СУБД отсутствует встроенный тип boolean?

Вообще очень похоже, что у тебя не было паскальной школы, тогда бы особых вопросов по типах не было.
Спасибо, порадовал! Зря я на ВМК МГУ учился, надо было в "паскальной школе"...
 

vovanium

Новичок
Sad Spirit
что-то ты по ходу не с той ноги встал, если уж ты о паскальной школе отвечаешь "Зря я на ВМК МГУ учился, надо было в "паскальной школе"...
выражение "паскальная школа", не означает какого-то конкретного учебного заведения ;)
 

Sad Spirit

мизантроп (Старожил PHPClub)
Команда форума
Sad Spirit
что-то ты по ходу не с той ноги встал, если уж ты о паскальной школе отвечаешь "Зря я на ВМК МГУ учился, надо было в "паскальной школе"...
выражение "паскальная школа", не означает какого-то конкретного учебного заведения ;)
Не люблю объяснять шутки, но тут, чувствую, без вариантов... :( Я как бы тонко намекаю, что в процессе обучения мне --- среди прочего --- и на паскале тоже писать приходилось. Смеяться после слова "лопата".
 
Сверху