Page 106 - 4636
P. 106
існувало б відношення "один до одного". Таблиці Addresses (Адреси) і Customers могли б бути
пов'язані зовнішнім ключем або якось інакше.
При відношенні "один до багатьох" один рядок у першій таблиці пов'язаний з кількома рядками
іншої таблиці. У нашому прикладі один клієнт може зробити кілька замовлень. У таких відношеннях
таблиця, яка містить кілька рядків, буде мати зовнішній ключ до таблиці з одним рядком . У даному
випадку, щоб проілюструвати це відношення, ми вставили ідентифікатор клієнта в таблицю
замовлень.
Відносно типу "багато до багатьох" кілька рядків однієї таблиці пов'язані з декількома рядками
іншої. Наприклад, за наявності двох таблиць Books (Книги) і Authors (Автори ) могло б з'ясуватися, що
одна книга була написана кількома авторами, кожен з яких написав і інші книги, причому деякі з них
могли бути написані, знову-таки, у співавторстві з іншими. Як правило, такий тип відносин вимагає
наявності окремої таблиці. У результаті могли б існувати таблиці Books, Authors і Books Authors. Третя
таблиця містила б тільки ключі з інших двох таблиць як парних зовнішні ключі, що показують, які
автори брали участь у написанні тієї чи іншої книги.
5.2 Як спроектувати власну базу даних для веб-додатка
Як правило, при створенні бази даних доводиться моделювати об'єкти і взаємозв'язки реального
світу і зберігати інформацію про ці об'єкти та взаємозв'язки.
Загалом випадку кожен клас реальних модельованих об'єктів потребує власної таблиці.
Подумайте про наступну ситуацію: нам потрібно зберігати однакову інформацію про всіх наших
клієнтів. Але при існуванні набору даних однакової "форми" ми запросто можемо створити таблицю,
відповідну цим даним.
У прикладі з магазином "Буквофіл" необхідно зберігати відомості про клієнтів, продані книги і
деталі замовлень. У кожного клієнта є ім'я, прізвище та адреса. Замовлення відрізняються датою
оформлення, загальною вартістю і списком замовлених книг. Книги відрізняються номером ISBN,
автором, назвою і ціною.
Виходячи з цього, база даних повинна містити, як мінімум, три таблиці: Customers (Клієнти),
Orders (Замовлення) і Books (Книги). Початкова схема представлена на рис. 5.3
Customers(Клієнти)
CustomerID Name(ФІО) Address (Адреса) City (Місто)
(Первинний ключ)
1 Саша Валентей 12, вул. Гудвіна м. Київ
2 Єва Легка 34, вул. Чорновола м. Харків
3 Слава Моргунов 56, вул. Пулюя м. Одеса
Orders (Закази)
OrderID CustomerID Amount (Сумма) Date (Дата)
(Ідентифікатор заказу) (Зовнішній ключ)
1 3 27.50 02-Червня-2013
2 1 12.99 15-Червня-2013
3 2 74.00 19-Червня-2013
4 3 6.99 01-Липня-2013
103