Читайте также:
|
|
В главе 1 была представлена концепция нормализации, что является процессом обеспечения отсутствия в БД дублирующихся (кроме внеш_ них ключей) или составных столбцов. При повторном анализе столб_ цов таблицы возникают следующие соображения:
• Столбец name на самом деле является составным объектом, вклю_ чающим имя и фамилию.
• Поскольку несколько человек могут иметь одинаковые имя, пол, дату рождения и т. д., в таблице person нет столбцов, гарантирую_ щих уникальность.
• Столбец address – тоже составной объект, включающий улицу, го_ род, штат/область, страну и почтовый индекс.
• Столбец favorite_foods – это список, содержащий 0, 1 или более не_ зависимых элементов. Было бы лучше вынести эти данные в отдель_ ную таблицу, включающую внешний ключ к таблице person, чтобы обозначить человека, к которому приписано конкретное блюдо.
В табл. 2.7 можно увидеть нормализованный вариант таблицы person после учета всех этих замечаний.
Теперь, когда у таблицы person есть первичный ключ (person_id), га_ рантирующий уникальность, следующим шагом будет построение таб_ лицы favorite_food, включающей внешний ключ к таблице person. Ре_ зультат показан в табл. 2.8.
Столбцы person_id и food (блюдо) образуют первичный ключ таблицы favorite_food. Столбец person_id также является внешним ключом к таблице person.
Глава 2. Создание и заполнение базы данных | |||||||
Таблица 2.7. Таблица Person, второе приближение | |||||||
Столбец | Тип | Допустимые значения | |||||
Person_id | Smallint (unsigned) | ||||||
First_name | Varchar(20) | ||||||
Last_name | Varchar(20) | ||||||
Gender | Char(1) | M, F | |||||
Birth_date | Date | ||||||
Street | Varchar(30) | ||||||
City | Varchar(20) | ||||||
State | Varchar(20) | ||||||
Country | Varchar(20) | ||||||
Postal_code | Varchar(20) | ||||||
Таблица 2.8. Таблица Favorite_food (любимое блюдо)
Столбец | Тип |
Person_id | Smallint (unsigned) |
Food | Varchar(20) |
Дата добавления: 2015-08-17; просмотров: 49 | Нарушение авторских прав
<== предыдущая страница | | | следующая страница ==> |
Создание таблиц | | | Шаг 3: построение SQL_выражений управления схемой данных |