
- •Лабораторная работа №9
- •9.4. Разработка пользовательского приложения на примере задачи производства и реализации продукции
- •9.4.1. Постановка задачи
- •9.4.2. Выбор программного обеспечения для реализации проекта
- •9.4.3. Разработка базы данных
- •9.4.3.1. Описание модели данных
- •9.4.3.2. Создание логической модели данных
- •9.4.3.3. Переход к физической модели данных
- •9.4.3.4. Генерация скрипта бд
- •9.4.4. Генерация базы данных на сервер
- •9.4.4.1. Создание бд путем разработки php-программ
- •1. Создание базы данных
- •2. Установка соединения, создание таблиц и связей
- •3. Проверка правильности создания бд
- •4. Заполнение таблиц данными
- •9.4.4.2. Создание бд c помощью модуля phpMyAdmin
- •9.4.4.3. Реализация бизнес-функций с помощью запросов
2. Установка соединения, создание таблиц и связей
Чтобы работать с базой данных, необходимо установить с ней сетевое соединение, а также провести авторизацию пользователя. Для этого служит функция mysql_connect(). После установки соединения выбираем БД функцией mysql_select_db( ). Далее можно приступать к созданию таблиц. Таблицы будем создавать с помощью функции mysql_query(), которая выполняет запросы SQL.
Так как объекты базы данных будут создаваться с помощью запросов, можно воспользоваться ранее сгенерированным скриптом.
PHP-скрипт для создания объектов базы данных приведен ниже.
<?php
$db = mysql_connect("localhost","root");
mysql_select_db("Ychet_izdelij",$db);
$result=mysql_query("CREATE TABLE Izdelie(
Kod_izd CHAR(3) NOT NULL,
Name_izd CHAR(15),
Stoimost_izd FLOAT,
PRIMARY KEY (Kod_izd)
)",$db);
$result=mysql_query("CREATE TABLE Predprijatie(
Kod_pr CHAR(3) NOT NULL,
BankSchet CHAR(10),
Adres CHAR(30),
Name_pr CHAR(25),
PRIMARY KEY (Kod_pr)
)",$db);
$result=mysql_query("CREATE TABLE Rasxod(
Kod_sr CHAR(3) NOT NULL,
Kod_izd CHAR(3) NOT NULL,
Kol FLOAT,
PRIMARY KEY (Kod_sr, Kod_izd)
)",$db);
$result=mysql_query("CREATE TABLE Sirjo(
Kod_sr CHAR(3) NOT NULL,
Name_sr CHAR(15),
Stoimost_edinici FLOAT,
Kod_pr CHAR(3) NOT NULL,
PRIMARY KEY (Kod_sr)
)",$db);
$result=mysql_query("CREATE TABLE Realizacija(
Nom_nakl INT NOT NULL,
Data_real DATE,
Kol FLOAT,
Kod_pr CHAR(3) NOT NULL,
Kod_izd CHAR(3) NOT NULL,
PRIMARY KEY (Nom_nakl)
)",$db);
$result=mysql_query("ALTER TABLE Rasxod ADD CONSTRAINT RefSirjo3 FOREIGN KEY (Kod_sr) REFERENCES Sirjo(Kod_sr)",$db);
$result=mysql_query("ALTER TABLE Rasxod ADD CONSTRAINT RefIzdelie4 FOREIGN KEY (Kod_izd) REFERENCES Izdelie(Kod_izd)",$db);
$result=mysql_query("ALTER TABLE Realizacija ADD CONSTRAINT RefPredprijatie5 FOREIGN KEY (Kod_pr) REFERENCES Predprijatie(Kod_pr)",$db);
$result=mysql_query("ALTER TABLE Realizacija ADD CONSTRAINT RefIzdelie6 FOREIGN KEY (Kod_izd) REFERENCES Izdelie(Kod_izd)",$db);
$result=mysql_query("ALTER TABLE Sirjo ADD CONSTRAINT RefPredprijatie1 FOREIGN KEY (Kod_pr) REFERENCES Predprijatie(Kod_pr)",$db);
mysql_close($db);
?>
3. Проверка правильности создания бд
Чтобы убедиться, что все объекты созданы и находятся в БД, можно использовать функцию mysql_list_tables(), которая возвращает список таблиц БД MySQL.
<?php
$dbname = "Ychet_izdelij";
if (!mysql_connect("localhost", "root")) {
print "Невозможно соединиться с mysql";
exit;
}
$result = mysql_list_tables($dbname);
if (!$result) {
print "Ошибка БД, невозможно вывести список таблиц\n";
print "MySQL Error: " . mysql_error();
exit;
}
while ($row = mysql_fetch_row($result)) {
print "Таблица: $row[0] \n";
}
mysql_free_result($result);
?>
Рис. 15. Результат работы скрипта для вывода списка таблиц в БД