Используйте несколько меньших varchars вместо одного большого

(mysql innodb)

Предположим, я хочу перечислить описание рецепта по шагам, как показано ниже. Должен ли я использовать несколько меньших varchars для каждого шага или я должен использовать один большой? Что вы считаете наиболее гибким/эффективным? Имейте в виду, что я новичок, когда дело доходит до баз данных. Кроме того, подходит ли varchar для этой работы? Спасибо!

  1. Установите духовку на 350 градусов
  2. Добавить молоко
  3. Добавить яйца
  4. Выпекать 40 минут

Кроме того, если это имеет значение для производительности/хранения, сохраненный язык будет шведским (включая несколько «странных» символов)


person user1679724    schedule 27.09.2012    source источник
comment
Каков ваш вариант использования? Как вы будете получать доступ к этим значениям?   -  person deadly    schedule 27.09.2012
comment
Хороший вопрос. Я предполагаю, что сохраненные данные будут использоваться только для вывода списка выше или подобного. Ингредиенты и их количество хранятся отдельно и не влияют на список выше.   -  person user1679724    schedule 27.09.2012


Ответы (2)


Вы бы предпочли использовать nvarchar. varchar имеет фиксированный размер независимо от того, насколько велика ваша запись. nvarchar такой же большой, как запись.

Пример: nvarchar(50) с записью «аа» занимает 2 символа varchar(50) с записью «аа» занимает 50 символов

person Konstantin Dinev    schedule 27.09.2012
comment
Кажется полезным, я посмотрю. Никогда не слышал об этом раньше. - person user1679724; 27.09.2012

Я думаю, что описание рецепта будет одним полем в базе данных... верно?

Если вы не можете себе представить, как долго это может быть, вам следует сохранить текст, чтобы вы могли также добавить длинный текст.

person Amrish Prajapati    schedule 27.09.2012
comment
Да, мне тоже это кажется логичным. Я предполагаю, что причина, по которой я спрашиваю, в основном в том, что я разработал его для нескольких varchars, прежде чем много думать об этом и хотел внести какой-то вклад. Я изучу текст и nvarchar и посмотрю, что у меня получится. - person user1679724; 27.09.2012