2012-01-15 2 views
2

Я экспериментирую с возможной структурой данных для моего приложения, и мне нужно предоставить столбец в одной из таблиц данных SQL Server для хранения различных данных непредсказуемого размера.Каков наиболее гибкий тип данных в SQL Server 2008 R2?

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

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

varchar(MAX)? 
nvarchar(MAX)? 

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

+0

текстовые данные и кодированный с базой-64 видеоролик - это строки, имеющие разную длину. Вы хотите хранить * другие * типы данных (в собственном формате)? –

+0

На данный момент я не могу себе представить, что мне когда-нибудь понадобится хранить что-нибудь другое, что очень длинная строка текста. Любой носитель может быть закодирован в формате Base64, правильно? Вы думаете, что мне может понадобиться хранить байты? Спасибо за ваш комментарий. –

+0

Для хранения кодированной в кодировке Base64 строки VARCHAR (MAX). Проверьте http://stackoverflow.com/questions/2397624/which-sql-data-type-to-store-base64-encoded-file – vmvadivel

ответ

7

VARBINARY (MAX)?

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

+0

Спасибо Dems! Сейчас я читаю этот тип данных (хочу быть разумным ради других пользователей SO, прежде чем выбирать это как выигрышный ответ). Наверху, знаете ли вы, сколько данных этот тип принимает против других типов MAX? Или это даже имеет значение в наши дни, так как хранение так дешево? Я знаю, что мы не должны запрашивать мнения, но вам действительно будет полезно. Благодарю. –

+0

Размер объекта + 2 байта, я думаю. И нет, я бы не стал беспокоиться о различиях в использовании космоса. Выберите правильный тип, не компромисс, чтобы сделать едва заметную оптимизацию, которую вам почти не понадобится. – MatBailie

+0

Отличный совет! Спасибо всем, кто выложил, но этот ответ кажется победителем. Еще раз спасибо Dems! –

1

Рассмотрите возможность использования типа данных xml. Это позволит вам хранить, запрашивать и индексировать произвольные XML-документы.

+0

Может ли бинарные объекты хранить в XML? – MatBailie

+0

Спасибо, Джон! Я проверяю ответы в хронологическом порядке. Я бы не подумал о XML. Интересно. , , –

+0

@ Dems: да, вы можете хранить двоичные файлы как base64 в XML –

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