Loading...
PetarHr avatar PetarHr 1 Точки

Избор на тип данни за бинарни файлове (снимки, профилни снимки и др. под.)

Здравейте, 

Решавайки домашните от DB Basics откривам на доста места да създадем колона (именувана Picture, ProfilePicture и т.н.), която да съхванява, цитирам, "image with size up to XXXX.", където "ХХХХ" е или 900КБ или 2 МБ.

Четейки документацията за MS SQL типовете данни виждам, че вариантите ми са IMAGE (който е legacy, така че и той мн не се препоръчва) или VARBINARY. Само че и при двата не мога да задам да не са повече от 900 КБ или 2 МБ, а трябва да ги използвам с максималните стойности, които се побират в тях (2 ГБ).

Това ли е правилния подход при такива ограничения в размера на файловете? 

Или по друг начин формулирано - Kогато имаме ограничение от тип "снимка с размер над 8000 байта" правилното решение е да използваме IMAGE или VARBINARY(MAX)?

Поздрави, 

Петър Хр.

 

 

1
Databases Basics
nickwork avatar nickwork 657 Точки
Best Answer

Пример 

Създаваш полето като VARBINARY МАХ, после му слагаш констраинт за макс размер...това бяха показали на лекциите, точно на коя  не се сещам...това е пример от интернет...не е задължително да правиш alter table, можеш направо при декларацията на полето да му сложиш ограничение...както на теб ти е по удобно

CREATE TABLE dbo.T
(
    ID INT IDENTITY,
    VarB VARBINARY(MAX)
);

ALTER TABLE dbo.T ADD CONSTRAINT CHK_T_VarB__2MB CHECK (DATALENGTH(VarB) <= 2097152);
0
PetarHr avatar PetarHr 1 Точки

Супер, благодаря за отговора! :) 

0
Можем ли да използваме бисквитки?
Ние използваме бисквитки и подобни технологии, за да предоставим нашите услуги. Можете да се съгласите с всички или част от тях.
Назад
Функционални
Използваме бисквитки и подобни технологии, за да предоставим нашите услуги. Използваме „сесийни“ бисквитки, за да Ви идентифицираме временно. Те се пазят само по време на активната употреба на услугите ни. След излизане от приложението, затваряне на браузъра или мобилното устройство, данните се трият. Използваме бисквитки, за да предоставим опцията „Запомни Ме“, която Ви позволява да използвате нашите услуги без да предоставяте потребителско име и парола. Допълнително е възможно да използваме бисквитки за да съхраняваме различни малки настройки, като избор на езика, позиции на менюта и персонализирано съдържание. Използваме бисквитки и за измерване на маркетинговите ни усилия.
Рекламни
Използваме бисквитки, за да измерваме маркетинг ефективността ни, броене на посещения, както и за проследяването дали дадено електронно писмо е било отворено.