2012-02-09 4 views
7

Я создаю пользовательский CMS для своего сайта, и я собираюсь хранить статьи (текст и изображения в каждой статье) в базе данных mysql. какой тип данных лучше всего подходит для этой задачи?Какой тип данных лучше всего хранить в базе данных SQL?

+0

Предположим, что 'TEXT' будет лучшим типом данных для этого. –

+1

Я не знаю, почему вы хотите хранить изображения в базе данных, но я считаю, что это хорошо, чтобы сохранить на локальном диске «Изображения на компьютере» и хранить только «путь» в базе данных. Это будет хорошо для производительности. Игнорируй меня, если я ошибаюсь. Я не эксперт CMS. С уважением – Scorpion

ответ

5

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

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

Другие варианты расследования включают Markdown (система, используемая этим сайтом), а также BBCode (в основном, используемые онлайн-форумами), а также многие другие.

Подводя итог - не сохраняйте изображения и текст в одном поле. Сохраните текст и интерпретируйте этот текст для загрузки изображений и других материалов в ваших статьях.

1

Сохраните изображения как VARCHAR, но только имя изображения (и/или местоположение, в зависимости от того, насколько велики ваши cms), сохраните текст как - TEXT.

1

В моем тексте используйте текст для статей, содержащих символы HTML, которые я использую. Но есть много других вещей, которые следует учитывать. Это зависит от того, какое содержание ваших статей. В ваших изображениях вы можете сохранить путь к картинке, если только вы не планируете хранить изображение.

0

Храните изображения и текст отдельно. Предполагая, что вы пытаетесь сохранить двоичные изображения в базе данных, я рекомендую хранить изображения как тип данных BLOB и текст для текста.

Не используйте VARCHAR для текста статьи, потому что он не динамически расширяется за размер, который вы делаете.

1

См. Этот article, в котором Microsoft настаивает, что тип данных text исчезнет и поэтому не должен использоваться в новой разработке. Альтернативами являются varchar и nvarchar для текста и varbinary для изображений.

0

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

Для изображений вы можете сохранить их в папке, подобной используемой для css/js, и сохранить ее значение src в базе данных. Это было бы эффективно с точки зрения скорости и хранения.

Смежные вопросы