Друг вид отношение е връзката "един към един". Например да предположим, че трябва да запишете някаква специална допълнителна информация за продукта, която ще ви е необходима рядко или се отнася само за няколко продукта. Понеже информацията не ви трябва често и съхранението й в таблицата "Продукти" ще има за резултат празно място за всеки продукт, за който не се отнася, вие ще я поставите в отделна таблица. Както при таблицата "Продукти", като първичен ключ ще се използва ИД на продукта. Връзката между тази допълнителна таблица и таблицата "Продукти" е от типа "един към един". За всеки запис в таблицата "Продукти" съществува един съответстващ запис в допълнителната таблица. След като е определена такава връзка, и двете таблици трябва да споделят общо поле.
Когато откриете необходимост от връзка "един към един" за базата данни, обмислете дали не може да сложите информация от двете таблици заедно в една таблица. Ако не искате да правите това поради някаква причина, вероятно поради получаването на много празно място, следващият списък показва как би трябвало да представите връзката в проекта си:
Определянето на връзките между таблиците ви помага да се уверите, че имате правилни таблици и колони. Когато съществува връзка от типа "един към един" или "един към много", участващите таблици трябва да споделят обща колона или колони. Когато съществува връзка от типа "много към много", за представяне на връзката е необходима трета таблица.
След като имате необходимите таблици, полета и връзки, трябва да създадете и да запълните таблиците си с примерни данни и да опитате да работите с информацията, като създавате заявки, добавяте нови записи и т. н. Извършването на тази работа ви помага да разкриете потенциални проблеми – например да поискате да добавите колона, която сте забравили да вмъкнете във фазата на проектирането, или да разделите една таблица на две, за да отстраните дублирането.
Проверете дали може да използвате базата данни, за да получите желаните отговори. Създайте груби чернови на формулярите и отчетите и вижте дали показват очакваните данни. Потърсете ненужно дублиране на данни и ако откриете такова – променете проекта, за да го премахнете.
Докато изпробвате началната база данни, може би ще откриете място за подобрение. Ето няколко неща, които трябва да проверите:
Да предположим, че всеки продукт в базата данни за продажба на продуктите попада в една обща категория като напитки, подправки или морски храни. Таблицата "Продукти" би могла да съдържа поле, показващо категорията на всеки продукт.
Да предположим, че след прегледа и прецизирането на проекта на базата данни решите да съхранявате описание на категорията заедно с названието й. Ако добавите поле с описания на категорията към таблицата "Продукти", ще трябва да повтаряте това описание на категорията за всеки продукт, попадащ в нея – това не е добро решение.
Едно по-добро решение е като нов предмет за проследяваната база данни да се направят "Категории" със своя собствена таблица и собствен първичен ключ. След това първичният ключ от таблицата "Категории" може да се добави като външен ключ към таблицата "Продукти".
Таблиците за категориите и продуктите имат връзка "един към много": една категория може да включва повече от един продукт, но един продукт може да принадлежи само на една категория.
Когато правите преглед на структурата на таблиците, внимавайте да не допуснете повтарящи се групи. Например да разгледаме една таблица, съдържаща следните колони:
Тук всеки продукт е една повтаряща се група от колони, която се различава само по добавяния номер на края на името на колоната. Когато видите колони, номерирани по този начин, трябва да преразгледате проекта си.
Такъв проект има няколко недостатъка. При стартиране сте принудени да поставяте горна граница за броя на продуктите. Щом превишите тази граница, ще трябва да добавите нова група колони в структурата на таблицата, което представлява голяма административна задача.
Един друг проблем е свързан с това, че за доставчиците, имащи по-малък брой на продуктите от максималния, ще се хаби известно място, тъй като допълнителните колони ще са празни. Най-сериозният недостатък на подобен проект е, че той затруднява изпълнението на много задачи като сортирането и индексирането на таблицата по ИД или име на продукт.
Винаги когато видите повтарящи се групи, преглеждайте внимателно проекта за възможности за разделяне на таблицата на две. В горния пример е по-добре да се използват две таблици – една за доставчици и една за продукти, свързани с ИД на доставчик.