Липсата на ограничения в NoSQL база данни означава пълна гъвкавост на данните. Това звучи привлекателно в началото, като се има предвид факта, че спестява време за разработка, като не дефинира никакви колони или типове данни към момента на създаване на вашите колекции. Но тази голяма гъвкавост идва с цена, особено когато вашата база данни нараства достатъчно голяма и някои от документите може да съдържат лоши стойности или липсващи атрибути, които е трудно да се намерят от заявки. Това от своя страна може да промени набора от резултати от вашите заявки и в крайна сметка да навреди на бизнес решенията ви.
От друга страна релационната база данни изисква дефинирани таблици и колони, преди да започнете да осъществявате достъп до вашата база данни. Тъй като тези данни се съхраняват в строг формат, няма възможност за лоши стойности или липсващи атрибути и връща точни резултати от заявката. Разбира се, осигуряването на строги правила за формат почти напълно убива всякаква гъвкавост на данните, която сте имали, и забавя възможността за добавяне и следователно заявка за нови данни.
Ограничаване на гъвкавостта на данните
Но не се притеснявайте, че можете да имате най-доброто от двата свята, като използвате тригери NoSQL. В NosDB, базирана на .NET NoSQL документна база данни, можете да използвате тригери, за да потвърдите вашите данни и да наложите правила за данни, гарантиращи последователност на формата на данните, без значение колко голяма става вашата база данни. Тригерите са функции, регистрирани спрямо операция на база данни. Те се изпълняват в отговор на извършената операция, като по този начин „задействат“ функцията.
За да използвате, просто създайте .NET клас и имплементирайте Alachisoft.NosDB.Common.Triggers.IDatabaseTrigger от библиотеката NosDB Common, която се намира в инсталационната папка. Има два налични метода, но ще използваме само метода PreTrigger и ще оставим метода PostTrigger такъв, какъвто е, тъй като просто искаме да потвърдим данните си, преди да ги добавим в колекцията. Ето примерен код:
Този код гарантира две неща.
- Върнете „false“, за да отхвърлите обект, ако имаме липсващ атрибут.
- Актуализирайте JSON документ, ако липсва, със стойност по подразбиране и върнете „true“, за да приемете данните.
Бихме могли също да проверим дали даден атрибут е от точния тип данни или не и да отхвърлим въвеждането на данни, ако е необходимо.
За да регистрирате този тригер с колекция, отворете NosDB Management Studio. Свържете се с клъстер и изберете колекция от база данни. Разширете до „Колекции“ и изведете контекстното меню, като щракнете с десния бутон върху CLR Triggers. Следвайте съветника за регистрация на тригера. Разгледайте следната фигура за по-добра идея:
Тъй като ние се интересуваме само от валидиране на данните за всяка вложка (както е показано от кода по-горе ) трябва само да регистрирате тригера PreInsert. И това е!
NosDB е с отворен код и 100% естествена .NET NoSQL база данни (издадена под лиценза Apache 2.0). NosDB е супер бърз и линейно мащабируем, позволявайки на вашите .NET приложения да се справят с екстремни транзакционни натоварвания (XTP) и работи във Visual Studio.
NosDB също ви помага да ускорите разработката на .NET, като предоставя гъвкава JSON схема. С JSON можете бързо да се приспособите към променящите се изисквания за данни, като по този начин намалите времето си за излизане на пазара.