База данных delphi

  • 11 янв. 2014 г.
  • 1860 Слова
1. Исследование предметной области, описание постановки задачи

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

После изучения деятельности предприятия структура его работы выглядит так:
Магазин ведет продажу щенков. Поставщикидоставляют в определенный магазин щенков, откуда ведется их последующая продажа. Поступивших щенков записывают в базу данных, назначают цену. Когда щенка покупают, магазин обновляет информацию о его продаже и ставит дату продажи.

2. Концептуальное проектирование. ER-диаграмма
После исследования предметной области и, исходя из полученных данных, можно выявить следующие объекты, которыепредставляют интерес в рамках данного проекта:
1) Магазины
2) Щенки
3) Породы
4) Наличие щенков в магазинах
У каждого из этих объектов можно выделить свои атрибуты.
Магазины:
Номер, название, описание.
Щенки:
Номер, номер породы, день рождение, цена, описание.
Породы:
Номер, название.
Наличие щенков в магазинах:
Номер, номер щенка, номер магазина, поступил, продан.
Также, стоит выделитьсвязи между объектами предметной области.
1) Породы-Щенки. Связь «один ко многим», т.к. одна порода может быть присвоена к многим щенкам.

2) Магазины-Наличие щенков в магазинах. Связь «один ко многим», т.к. в таблице наличия щенков в магазинах может быть несколько магазинов.

3) Щенки-Наличие щенков в магазинах. Связь «один ко многим», т.к. в таблице наличие щенков в магазинах можетбыть несколько щенков.

3. Реляционная модель БД
После изучения предметной области и формирования ER модели, можно выделить список следующих отношений.
CREATE TABLE IF NOT EXISTS `breeds`(
`id` INT UNSIGNED NOT NULL AUTO_INCREMENT COMMENT 'Уникальный номер',
`uname` VARCHAR(50) NOT NULL COMMENT 'Название породы',
PRIMARY KEY (id),
UNIQUE KEY (uname)
) COMMENT 'Названияпороды собак' ENGINE = INNODB;

В этом отношении, первичным ключом является уникальный номер. Прочие атрибуты: название породы.

CREATE TABLE IF NOT EXISTS `puppys`(
`id` INT UNSIGNED NOT NULL AUTO_INCREMENT COMMENT 'Уникальный номер',
`id_breed` INT UNSIGNED NULL COMMENT 'Уникальный номер породы',
`birthday` DATE NOT NULL COMMENT 'Когда родился',
`price` DECIMAL UNSIGNED NOT NULLCOMMENT 'Цена щенка (рубли)',
`description` VARCHAR(255) NULL COMMENT 'Дополнительное описание щенка',
PRIMARY KEY (id),
FOREIGN KEY (id_breed) REFERENCES breeds(id) ON DELETE CASCADE
) COMMENT 'Щенки в наличии' ENGINE = INNODB;

В этом отношении, первичным ключом является уникальный номер. Прочие атрибуты: уникальный номер породы, когда родился, цена щенка, дополнительноеописание щенка.

CREATE TABLE IF NOT EXISTS `shops`(
`id` INT UNSIGNED NOT NULL AUTO_INCREMENT COMMENT 'Уникальный номер',
`uname` VARCHAR(50) NOT NULL COMMENT 'Название магазина',
`description` VARCHAR(255) NULL COMMENT 'Дополнительное описание магазина',
PRIMARY KEY (id),
UNIQUE KEY (uname)
) COMMENT 'Магазины' ENGINE = INNODB;

В этом отношении, первичным ключом является уникальныйномер. Прочие атрибуты: название магазина, дополнительное описание магазина.

CREATE TABLE IF NOT EXISTS `shop_puppys`(
`id` INT UNSIGNED NOT NULL AUTO_INCREMENT COMMENT 'Уникальный номер',
`id_puppy` INT UNSIGNED NULL COMMENT 'Уникальный номер щенка',
`id_shop` INT UNSIGNED NULL COMMENT 'Уникальный номер магазина',
`brought` DATE NOT NULL COMMENT 'Когда привезли',
`bought`DATE NULL COMMENT 'Когда продали',
PRIMARY KEY (id),
UNIQUE KEY(id_puppy),
FOREIGN KEY (id_puppy) REFERENCES puppys(id) ON DELETE CASCADE,
FOREIGN KEY (id_shop) REFERENCES shops(id) ON DELETE CASCADE
) COMMENT 'В каком магазине какой щенок продается' ENGINE = INNODB;

В этом отношении, первичным ключом является уникальный номер. Прочие...
tracking img