2009-07-28 2 views
0

Я делаю свой первый проект базы данных.Каков подходящий предел для вопроса в базе данных?

Я хотел бы знать, что является подходящим пределом для вопросов по длине.

У меня есть varchar(5000) для вопроса в данный момент.

Каков предел для вопроса в базе данных?

[править]

вопрос в базе данных, как вопрос здесь в SO, с кодом форматирования.

+1

Какой вопрос? – Thomas

+0

Вы собираетесь разрешить людям включать фрагменты кода или разделы диалога? Будут ли символы форматирования? – lavinio

+1

Не могли бы вы уточнить, на каком типе вопроса? – statenjason

ответ

3

Какая СУБД вы используете? Вероятно, вы захотите использовать столбец TEXT или его эквивалент, что намного лучше для хранения больших объемов данных.

+0

У нас мало информации, но все, что имеется в виду под «вопросом», я не думаю, что текстовая запись является предметом. – Smandoli

+0

Если эти вопросы могут быть довольно длинными (если вы заметите, некоторые вопросы StackOverflow относятся к тысячам символов), я не думаю, что текст не может быть и речи. Ха. –

2

Могут ли вопросы быть довольно длинными? Возможно, лучшим выбором будет varchar(max). (Предполагается, что вы, конечно, используете SQL Server.)

0

Вопрос или ответ?

Кроме того, уместность полностью зависит от области приложения. Под этим я подразумеваю, что если вы делаете простой опрос, тогда вопрос, вероятно, будет менее 500 символов.

Предполагая, что вы строите это из некоторых спецификаций, как выглядит форма?

+0

Я строию дискуссионный сайт, вдохновленный SO. –

0

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

+1

Интересно, насколько это безопасно на практике, или лучше ли ограничивать размер, прежде чем попасть в db? – CookieOfFortune

1

Вы можете установить свой лимит, если вы также разрабатываете приложение для ввода вопросов. Например, подумайте о пределе Твиттера до 140 символов или меньше. Вы можете сделать то же самое здесь.

1

Как говорят другие ответы, это не вопрос базы данных, а вопрос приложения? Насколько вам нужно поле, чтобы хранить ваши вопросы?

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

Если вам нужно короткое поле (например, несколько сотен символов), тогда было бы разумным использовать поле с указанной максимальной длиной, например. NVARCHAR (256), однако, если много текста (как может показаться на этом сайте), то NVARCHAR (MAX), вероятно, более уместен. Обратите внимание, что в более поздних версиях SQL Server тип NTEXT по существу не рекомендуется.

+0

Спасибо, что указали на NVARCHAR! –

+1

IIRC, максимальная длина для nvarchar (max) в SQL Server 2005 составляет 4000 символов. – kevinw

+0

@ kevinw - Um, no, максимальная длина для NVARCHAR (MAX) составляет около 1 000 000 000 символов, так как максимальный размер поля составляет 2 ГБ и он использует 2 байта на символ. –

0

Некоторые из ваших других вопросов, указать, что вы используете PostgreSQL. Если вы, то PostgreSQL documentation on data types имеет хорошее обсуждение различных типов доступных и когда это целесообразно использовать каждый. В частности, обратите внимание, что «nvarchar» не является именем типа данных PostgreSQL.