хранение исходного файла JavaScript в базе данных сервера SQL - PullRequest
0 голосов
/ 16 марта 2019

Я разрабатываю веб-приложение asp.net, где пользователь может загрузить файл исходного кода javascript и сохранить его в базе данных sqlserver.

Файл, который он загружает, представляет собой файл javascript, разработанный им, а затем "минимизировано "благодаря webpack.Конечный файл может выглядеть примерно так:

window["integration/user"]=function(t){var e={};function r(n){if(e[n])return e[n].exports;var o=e[n]={i:n,l:!1,exports:{}};return t[n].call(o.exports,o,o.exports,r),o.l=!0,o.exports}return r.m=t,r.c=e,r.d=function(t,e,n){r.o(

Это только часть файла.Эти файлы обычно имеют размер 10 000 байт (размер, указанный моим проводником Windows).

Поэтому мой вопрос был следующим:

Поскольку varchar и varbinary имеют одинаковую максимальную емкость (8000 символов)эквивалентно 8000 байтам для varchar и 8000 байтам для varbinary), что было бы лучше всего:

- сохранение javascript в виде простого текста в столбце varchar

- преобразование в c # в двоичные данныеи затем сохранить его в столбце varbinary

Кроме того, я выполнил простой тест, попробовав второе решение, и оно работает (мне удалось сохранить его в столбце varbinary и затем прочитать обратно из него javascript с помощьюкод преобразования c #), но что я не могу понять, так это как файл размером 10000 байт (размер, заданный windows) может быть успешно сохранен в столбце varbinary с максимальной емкостью 8000 байт (так меньше, чем файл)?

это объявление моей колонки:

[JavascriptBundle] [varbinary](max) NOT NULL

1 Ответ

0 голосов
/ 16 марта 2019

Я думаю, что путаница заключается в том, что если вы явно определяете длины varchar или varbinary, тогда пределом является 8000.

Однако varchar(max) и varbinary(max) имеют максимальную длину 2 ^ 31-1 или 2 147 483 647 байт. Каким образом вы бы хотели определить столбец базы данных.

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

Ссылки:

varchar - https://docs.microsoft.com/en-us/sql/t-sql/data-types/char-and-varchar-transact-sql?view=sql-server-2017

varbinary - https://docs.microsoft.com/en-us/sql/t-sql/data-types/binary-and-varbinary-transact-sql?view=sql-server-2017

...