Хранителна база данни

В света има много обекти, които могат да се управляват в база данни, освен обичайните данни за адрес и клиенти. В търсенето си на по-малко тривиално съдържание се натъкнахме на данните за храната и нейните хранителни стойности - вероятно интересна тема по време на нарастваща несигурност относно храненето. Резултатът е приложение с допълнително управление на рецепти и калоричен калкулатор.

Примерна база данни

Примерите за тази статия могат да бъдат намерени в базата данни 1609_Naehrwerte.accdb

Хранителни и хранителни факти

В интернет могат да бъдат намерени множество колекции от данни за храните и техните хранителни стойности. Качеството на тези данни обаче е много нехомогенно. В единия случай обхватът е твърде малък, в другия съдържанието е частично неправилно. Проблемът с форматите за данни обаче е по-голям. Можете да намерите таблиците в текста или CSV-Форматирайте като Excel файлове или дори като Дъмпинг на SQL Postgres. Това води до преобразуване в Access, което обикновено се свързва с последваща обработка. Но дори и да намерите оригинална база данни на Access за изтегляне, често се сблъсквате с проблеми.

Добър пример е редовно актуализираната база данни на Министерството на земеделието на САЩ (Връзка), която също е достъпна във формат ACCDB. Тази база данни с приблизително 9000 записа на данни не оставя нищо желано от гледна точка на пълнота. Тяхната номенклатура обаче е изцяло английска и моделът на данни с 13-те таблици е толкова разклонен, че е практически невъзможно да се използва за проста хранителна база данни.

Накратко: Нашата хранителна таблица е получена от няколко източника, които най-накрая са получени чрез преобразуване и заявки за добавяне и актуализиране. Въздържаме се да опишем тук процедурата. Резултатът е набор от данни с около 12 000 записа на данни, всеки от които съдържа 48 ключови цифри. Големият брой се дължи на факта, че са изброени не само елементарни храни, но и съставни продукти като Гювеч за супа със сирене Allgäu или Свински език със сос от бяло вино, Така че основно завършени рецепти.

Модел на данни

Не може да бъде по-лесно: Хранителните данни са в една таблица tblNaehrwerte, които могат да бъдат намерени вдясно на Фигура 1. The документ за самоличност кога Стойност на автомобила представлява първичния ключ на таблицата, полето храна неговото име. Той също така е снабден с уникален индекс за предотвратяване на дублиране. Следва 48 полета за всички възможни ключови цифри, като например заплатата Калций, дебел, или аминокиселини. Всички полета с числа са като Двойна Са определени. Дизайнът на таблицата е показан на фигура 2. Свързани са с хранителната маса tblrecipes и tblrecipesing съставки. В първата създадените рецепти се записват по име, а предвидената в рецептата Порции-Посочена е сума. Вторият свързва рецепти и храни n: m. Следователно една рецепта може да съдържа няколко храни, техните количество в таблицата с връзки като Двойна-Броят на теглото е посочен в грамове.

hrwertdatenbank

Изображение 1: tblNaehrwerte в проект

Фигура 2: Доста ясен модел на данни на хранителната база данни

По време на изпълнение хранителната таблица изглежда като лист с данни, както е на Фигура 3. Можете да я филтрирате и сортирате според вашите критерии, като използвате стрелките за филтриране в заглавките на колоните. Сортирай в низходящ ред протеин, за идентифициране на храните с най-високо съдържание на протеини.

Фигура 3: Ето как част от 50-те полета на основната таблица tblNaehrwerte е представена в изглед на лист с данни

Въпреки това многото полета, които изискват хоризонтално превъртане, са много непрактични, така че данните за даден хранителен продукт никога не могат да се видят с един поглед, дори и на голям монитор. Тук се изисква формуляр с полета за подробности!

Хранителна форма

С 12 000 записа с данни намирането на храна всъщност е практично само с помощта на функция за търсене. Ето защо ние оборудваме формата си с такава. Фигура 4 показва структурата. Текстовото поле за въвеждане на дума за търсене се намира горе вдясно. Непосредствено след всяко натискане на клавиша списъкът с храни трябва да се появи в подформата вляво sfrmList актуализирайте непрекъснато. За тази подформа на базата на формуляра sfrmfood това е проста форма в изглед на лист с данни, която е взета от таблицата tblNaehrwerte изброява само имената на храните чрез тази заявка:

Изображение 4: Черновата форма за храна съдържа два подформа

Ако кликнете върху храна в този списък, тогава в подформата sfrmDetail данните му се показват вдясно. Използваната тук форма sfrmNahrmittel_E е точно на масата tblNaehrwerte обвързан и изглежда като в чернова като на снимка 5. Самата основна форма е, имайте предвид, че няма произход на данни! Това означава, че вече не се изискват никакви полеви връзки между основната и подформите.

Изображение 5: Подробният подформа sfrmNahrmittel_E в чернова

Задачата на подпрограмите на VBA на формуляра е, от една страна, да филтрира базата данни чрез полето за търсене и, от друга страна, да създаде активна връзка между подформата на списъка вляво и подформата за детайли вдясно. В експлоатация изглежда нещо като Фигура 6. Думата за търсене тук беше Пшеничен хляб влязъл. Както се вижда от списъка вляво, базата данни не филтрира за началото на срока, а за съдържанието, т.е. КАТО. Следователно и те се гмуркат Хляб от пшеничен хляб като резултат. Но това беше отбелязано Бял хляб-пшеничен хляб, подробностите за които следователно се появяват отдясно във формуляра.

Снимка 6: Така изглежда формата на храната в действие

Всъщност има само 32 от 48 полета. Това са най-подходящите параметри. Останалите са по-академични по природа и изоставени поради липса на място. Можете да ги добавите сами, ако искате.

Искате ли да продължите да четете? След това купете билета си!
Можете да поръчате годишния абонамент за списанието тук Достъп [основни положения]:
За поръчка .
След това вземете веднага всички около 400 артикула от нашата оферта - включително тази!
Или вече имате данни за достъп? След това влезте тук:

Оставете коментар отмяна отговор

Трябва да влезете, за да оставите коментар.