Подтвердить что ты не робот

Как определить длину Sequelize.STRING?

Я хочу определить длину типа данных в sequelize. Есть мой исходный код:

var Profile = sequelize.define('profile', {
  public_id: Sequelize.STRING,
  label: Sequelize.STRING
})

Создает профили таблицы с public_id с типом данных varchar (255).

Я хотел бы определить public_id с varchar (32).

Я искал в документе и стеке, но не смог найти ответа...

Как я могу это сделать?

4b9b3361

Ответ 2

Во-первых, я думаю, вам нужно немного переосмыслить свой дизайн. Основной момент заключается в том, что ограничения длины должны быть значимыми, а не просто для экономии места. PostgreSQL не хранит "A":: varchar (10) иначе, чем текст "A":: (они сохраняются как текстовые строки переменной длины, только до тех пор, пока значение сохраняется, а также спецификатор длины и некоторые другие метаданные), поэтому вы должны использовать самый длинный размер, который может работать для вас, и использовать длину для существенного обеспечения, а не для экономии места. Когда вы сомневаетесь, не сдерживайте. Когда вам нужно убедиться, что он подходит на ярлыке рассылки, ограничьте его соответствующим образом.

Во-вторых, Данкон ответил выше:

var Profile = sequelize.define('PublicID', {
  public_id: {
  validate: { len: [0,32] })

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

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