Následující části ukazují, jak byly navrženy relace mezi tabulkami databáze. Názvy objektů jsou k dispozici, takže je můžete snadno prozkoumat v databázi Northwind 2.0 Starter Edition.
Pokud chcete otevřít diagram relací zobrazující šest tabulek a relace mezi nimi, vyberte Databázové nástroje > relace.
Tento diagram znázorňuje všech šest tabulek. Čáry mezi tabulkami v diagramu identifikují relace mezi nimi. Symbol 1 a nekonečna (∞) na konci řádků představují jednu stranu relace (například jeden zákazník) a stranu N relace. Jeden zákazník například odešle mnoho objednávek. Další informace najdete v tématu Průvodce relacemi mezi tabulkami.
Následující principy platí pro tabulky v Northwind 2.0 Starter Edition i pro tabulky obecně.
Primární klíče Jedinečná identifikace každého záznamu v tabulce Všechny tabulky mají primární klíč. V diagramu vztahů klíčové symboly identifikují tyto primární klíče. Konvence vytváření názvů primárních klíčů jsou pojmenované pro tabulku, ve které se nacházejí, například "TableNameID".
Přidání pole automatického číslo jako primárního klíče.
Účinnosti Kvůli lepšímu výkonu a efektivnějšímu ukládání by primární klíče měly být číselné. Kromě toho je pohodlnější nechat Access automaticky vygenerovat novou jedinečnou hodnotu pro primární klíč každého nového záznamu. Datový typ Automatické číslo má obě vlastnosti. Automatická čísla jsou jinak nevýznamná čísla a neslouží k žádnému jinému účelu. Další informace najdete v tématuCizí klíče Tabulka může mít také jeden nebo více cizích klíčů v závislosti na tom, jestli souvisí s jinými tabulkami v databázi. Cizí klíč obsahuje hodnoty, které odpovídají hodnotám v primárním klíči související tabulky.
Jedinečné indexy Jiná pole v tabulkách mohou mít také své vlastní jedinečné indexy, například OrderStatus.StatusCode. Je nelogické mít v tabulce OrderStatus dva stavy objednávek se stejným kódem, i když StatusCode sám o sobě není primární klíč. Jedinečný index říká Accessu, aby zabránil duplicitním hodnotám v daném poli.
Indexy, které nejsou jedinečné Tabulky můžou mít také indexy, které urychlují hledání a řazení v těchto polích, například Orders.OrderDate. Mnoho objednávek je možné zadat ve stejný den a často chcete hledat a řadit data objednávek. Toto pole obsahuje jedinečný index, který urychlí hledání a řazení.
Názvy tabulek a polí Věci můžete pojmenovat libovolným způsobem, ale konzistence je důležitá. Doporučujeme, aby názvy tabulek a polí byly jedno nebo více slov bez mezer a žádné speciální znaky, jako je lomítko (/), znaménko libry (#) nebo procento (%). Například použijte DatumObjednávky, ale ne Datum objednávky; použijte OrderNumber nebo OrderNo, ale ne Order#.
CamelCase Velkými písmeny zvýrazníte jednotlivé části názvu, například OrderDate, ale ne Orderdate nebo OrderDate.
Požadovaná hodnota Tento princip zdůrazňuje význam obchodních pravidel pro aplikaci. Některé situace vyžadují hodnoty nebo dokonce konkrétní hodnoty v některých polích. Například k čemu je objednávka bez znalosti zákazníka, který ji zadal? To znamená, že pole CustomerID je povinné pro tabulku Objednávky.
Počítaná pole Access podporuje počítaná pole v tabulkách, například pole Employees.FullName. Počítaná pole můžete raději vytvářet v dotazu než v tabulce.
Pole příloh Access podporuje pole příloh, například Employees.Picture, která obsahují obrázek zaměstnance. Přílohy můžou ukládat obrázky, dokumenty, e-maily a další binární informace. Přílohy zabírají v databázi hodně místa. efektivnější je ukládat přílohy na souborový server.
Pole s více hodnotami Jak název napovídá, pole s více hodnotami ukládají jednu nebo více hodnot do jednoho pole, například Employees.Title. Doporučujeme je používat střídmě, zejména pokud chcete databázi přenést. Většina ostatních databázových systémů je nemá, takže by to vyžadovalo hodně práce.
Další informace o datových typech najdete v tématu Úvod do datových typů a vlastností polí.
Tato část popisuje nejdůležitější funkce každé tabulky. Pokud chcete zkontrolovat návrh tabulky, vyberte ji v navigačním podokně, klikněte na ni pravým tlačítkem, zvolte Návrhové zobrazení nebo vyberte Databázové nástroje > relace a potom klikněte pravým tlačítkem na objekt tabulky. Další informace najdete v tématu Úvod do tabulek.
Důležité informace: Nepoužívejte vyhrazená slova, která by můžou způsobovat konflikty názvů. Další informace najdete v tématu Informace o rezervovaných slovech a symbolech Accessu.
Tabulka Zaměstnanci
V této tabulce jsou uložené informace o zaměstnanech společnosti Northwind.
Pole |
Popis |
Jméno, Příjmení |
Oba názvy jsou povinné a v Northwind musí být společně jedinečnou kombinací. Když v návrhu tabulky otevřete dialogové okno Indexy , uvidíte, že jméno a příjmení má jedinečný index. Vzhledem k tomu, že jméno a příjmení jsou jedinečně indexované, nemůže tabulka Northwind uložit dva zaměstnance se stejným jménem. V jiných situacích můžete použít jiné obchodní pravidlo. |
FullNameFNLN, FullNameLNFN |
Podívejte se na vlastnost výrazu počítaných polí a zjistěte, jak Access kombinuje hodnoty v počítaných polích. Pokud chcete zahrnout prostřední iniciály, přidejte ho do existujícího výrazu s odpovídajícími mezerami mezi komponentami. |
Pole pro telefon |
Obchodní pravidlo pro telefony je, že preference zaměstnanců jsou relevantnější než typ služby. Proto se místo buňky, kanceláře, domu atd. používají primární a sekundární telefonní čísla. |
Oslovení |
Oslovení je krátké textové pole. Pro ilustraci funkce pole s více hodnotami v Accessu je to pole se seznamem s upravitelným seznamem předdefinovaných hodnot. Krátké statické seznamy, jako je tento, jsou často kandidáty na pole s více hodnotami, protože se příliš nemění, pokud vůbec někdy. |
JobTitle |
JobTitle je další povinné pole. |
Tabulka Customers (Zákazníci)
V této tabulce jsou uložené informace o zákaznících společnosti Northwind.
Pole |
Popis |
CustomerName |
Zákazníci společnosti Northwind jsou firmy a vyžaduje se jméno zákazníka. Na rozdíl od jmen zaměstnanců ale není jedinečně indexovaný, takže dva nebo více zákazníků může mít stejné jméno. |
PrimaryContactFirstName, PrimaryContactLastName, PrimaryContactJobTitle |
Křestní jméno a příjmení a pracovní pozice primárního kontaktu se nevyžadují, protože zákazníci nemusí mít jako primární kontakt jednu osobu. Kontakty nemusí dát pracovní pozici pro objednávku. |
BusinessPhone |
Northwind vyžaduje pouze jedno telefonní číslo pro každého zákazníka, i když to eliminuje možnost zachytit více telefonních čísel pro zákazníky nebo kontakty od zákazníků. V reálných situacích se na kontaktní informace obvykle vztahují složitější obchodní pravidla. |
Adresa, Město State, ZIP |
Společnost Northwind potřebuje adresu k doručování objednávek zákazníkům. Zákazník má jenom jednu obecnou adresu. V reálných situacích mají zákazníci často samostatné fakturační, dodací nebo jiné adresy. Jiné obchodní pravidlo pro vaši organizaci by vyžadovalo další pole. |
Poznámky |
Pole Poznámky je datový typ Dlouhý text, který uchovává až 1 GB textu. To vám umožní zadat podrobné komentáře k zákazníkům pro použití v následných situacích objednávek. |
Tabulka Objednávky
V této tabulce jsou uložené informace o objednávkách společnosti Northwind.
Pole |
Popis |
OrderDate, ShippedDate, PaidDate |
Objednávky vyžadují tři data. Všechny jsou datového typu Datum a čas, ale mají dva formáty. OrderDate má datum i čas, protože by vás mohla zajímat analýza objemu objednávek pro různé části dne. Pro další dvě data je vyžadováno pouze datum. Ověřovací pravidlo tabulky pro Datum odeslání a Datumobjednávky zajišťuje, že tato data nejsou před datem OrderDate. |
ORDERStatusID |
Stav objednávky označuje, kde je objednávka v pracovním postupu Northwind. Objednávky procházejí čtyřmi fázemi: Nové – > Fakturované – > Odesláno – > Uzavřeno.Cizí klíč pro aktuální OrderStatus používá OrderStatusID z vyhledávací tabulky OrderStatus. Pomocí vyhledávací tabulky Stav zajistíte, že se k objednávce dají přiřadit pouze čtyři předdefinované stavy. |
Tabulka podrobností objednávky
V této tabulce jsou uložené informace o podrobnostech objednávky společnosti Northwind.
Pole |
Popis |
Kódobjednávky |
Každá řádková položka v tabulce OrderDetails musí patřit do jedné objednávky v tabulce Objednávky. OrderID je cizí klíč, který tuto objednávku identifikuje. Jak jsme si poznamenali dříve, jedna objednávka obsahující jednu nebo více řádkových položek znázorňuje relaci 1:N. |
Productid |
Každý záznam v tabulce OrderDetails obsahuje ID produktu pro objednaný produkt. ProductID je cizí klíč v tabulce OrderDetails, který identifikuje produkt v daném pořadí. Jedná se také o relaci 1:N. |
OrderID+ ProductID |
Jak jste viděli v tabulce Zaměstnanci, více polí může mít jedinečný index. Jedinečný index orderID+ProductID v tabulce OrderDetails zajišťuje, že každá objednávka obsahuje produkt jenom jednou. Když otevřete seznam vlastností Indexy z pásu karet, uvidíte tento jedinečný index. |
Tabulka Products (Produkty)
V této tabulce jsou uložené informace o produktech společnosti Northwind.
Pole |
Popis |
Productcode |
Kromě primárního klíče ProductID mají produkty Northwind kód produktu, který je uživatelsky přívětivý a jedinečně indexovaný. Zaměstnanci obvykle odkazují na kódy produktů, a ne na hodnoty primárního klíče. Kód produktu je složená hodnota skládající se z označení Kategorie a čísla, například B-1 pro "Nápoj", produkt 1. |
Název produktu, Popis produktu |
Kromě krátkých textových názvů produktů se u produktů vztahuje dlouhý textový popis. Tuto hodnotu můžete použít v popisu katalogu nebo k zodpovězení dotazů zákazníků. |
Jednotkovácena |
Všechny produkty se prodávají s jednotkovou cenou pro každou položku, což zjednodušuje databázi jako prezentaci funkcí. Ve většině reálných situací jsou ceny často výrazně složitější. |
Viz také