Я пытаюсь создать таблицу (или несколько) для получения пользовательского ввода (UGC). Это содержимое может варьироваться по размеру от одного символа до нескольких сотен слов. Вход будет закодирован в utf8_unicode_ci
и может быть в латинском или многобайтовом формате.
Вход должен быть доступен для поиска.
Как мне структурировать свою БД, чтобы обеспечить хороший компромисс между гибкостью и производительностью? Я мог бы например ...
Я уверен, что есть и другие варианты.
Я предполагаю, что это может немного зависеть от вашего движка базы данных, но, скорее всего, у него есть поле для «Текст» (в отличие от «Varchar» или «Char»), которое подходит для хранения текстовых данных разного размера. По сути это ваш вариант №1.
Если он будет в MySQL, тогда у вас есть доступное поле Text или Blob: http://dev.mysql.com/doc/refman/5.6/en/blob.html