with an length limit then varchar(n) is great, but if you pick an arbitrary length and choose varchar(20) for a surname field you're risking production errors in the future when Hubert Blaine Wolfeschlegelsteinhausenbergerdorff signs up for your service.
тут говориться о том что фамилии могут быть длинными, люди воспринимают (по крайней мере я ) как информацию о том text лучше что потому что не имеет ограничений
> Так и поставьте CHECK constraint (или domain). Чёрным по белому же написано, нет?
зачем мне делать CHECK() если есть varchar и я не хочу лимить снизу?
Главное в этом параграфе — это "arbitrary length". Смысл его в том, что, т.к. в каких-то других СУБД Вы обязаны указывать конкретное N в varchar(N), их "лепят" как придётся... и потом возникают такие проблемы. > люди воспринимают (по крайней мере я ) как информацию о том text лучше что потому что не имеет ограничений Хмм... и таки да, можно, наверное, и так понять... :( > зачем мне делать CHECK() если есть varchar и я не хочу лимить снизу? Ага, это хороший вопрос (и есть несколько причин не использовать varchar(N) даже в этом случае). Может, их стоит попробовать добавить в статью (я просто не уверен, что прямо сейчас вспомню их все, поэтому не перечисляю)?
Обсуждают сегодня