Розробка бази даних

Основні поняття та визначення реляційних баз даних. Правила нормалізації таблиць, види міжтабличних зв’язків. Історія виникнення та розвитку технологій баз даних, методи класифікації та кодування. Особливості розробки бази даних та програмного додатку.

Рубрика Программирование, компьютеры и кибернетика
Вид курсовая работа
Язык украинский
Дата добавления 02.05.2017
Размер файла 1,1 M

Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже

Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.

У другому розділі виконаний порівняльний аналіз інструментів для проектування баз даних, розглянуті та описані найпопулярніші інструменти, такі як ERwin, BPwin, MySQL Workbench та Vertabelo. Розкрито основні можливості кожного з інструментів, переваги та недоліки кожного з них.

Описані локальні серверні служби Apache Web Server та MySQL Server. Розглянуто phpMyAdmin - одну із найпопулярніших на сьогоднішній день систем управління та адміністрування баз даних в інтернеті.

Детально описана скриптова мова PHP - мова, яка була створена для генерації HTML-сторінок на стороні веб-сервера.

Досліджена мова розмітки веб сторінок HTML.

РОЗДІЛ 3. Розробка бази даних та програмного додатку

3.1 Постановка задачі

Згідно індивідуальним завданням, мета даної роботи полягає у проектуванні та розробці бази даних бюджету руху грошових коштів. Для реалізації поставленої задачі ми скористаємося двома методами для проектування БД. Першим підходом до проектування є метод сутність - зв'язок, другим же є метод нормалізації відносин.

Модель сутність - зв'язок або по іншому ER-модель - це модель даних, що дозволяє описувати концептуальні схеми предметної області. Дана модель використовується при високорівневому проектуванні баз даних і дозволяє з її допомогою виділити ключові сутності і позначити зв'язки, які встановлюються між цими сутностями.

Нормалізація відносин - це формальний апарат обмежень на формування відносин, який дозволяє усунути дублювання і потенційну суперечливість збережених даних, таким чином зменшує трудовитрати на ведення БД. Процес нормалізації полягає в декомпозиції вихідних відносин на більш прості відносини, до тих пір, поки не вийде такий проект БД, в якому «кожен факт з'являється лише в одному місці».

3.2 Вибір СУБД для вирішення поставленої задачі

Для розробки програмного додатку обрано СУБД MySQL, тому що це найпопулярніша система управління базами даних на сьогоднішній день. MySQL є власністю компанії MySQL AB, що здійснює розробку і підтримку додатку.

MySQL є рішенням для малих і середніх додатків. Входить в LAMP. Звичайно MySQL використовується як сервер, до якого звертаються локальні або видалені клієнти, проте в дистрибутив входить бібліотека внутрішнього сервера, що дозволяє включати MySQL в автономні програми.

Гнучкість СУБД MySQL забезпечується підтримкою великої кількості типів таблиць: користувачі можуть вибрати як таблиці типу MyISAM, що підтримують повнотекстовий пошук, так і таблиці InnoDB, що підтримують транзакції на рівні окремих записів. Більш того, СУБД MySQL поставляється із спеціальним типом таблиць EXAMPLE, що демонструє принципи створення нових типів таблиць. Завдяки відкритій архітектурі і GPL-ліцензуванню, в СУБД MySQL постійно з'являються нові типи таблиць.

MySQL має API для мов C C++, Эйфель, Java, Лісп, Perl, PHP, Python, Ruby, Smalltalk і Tcl, бібліотеки для мов платформи .NET, а також забезпечує підтримку для ODBC за допомогою ODBC-драйвера MyODBC.

3.3 Розробка концептуальної моделі даних

Розробка бази даних за методом сутність-зв'язок складається з наступних етапів:

1. визначення сутностей;

2. визначення зв'язків;

3. визначення атрибутів;

4. визначення ключів сутностей;

5. визначення ступеня зв'язку;

6. визначення класу приналежності.

На першому етапі проектування необхідно визначити сутності. Сутність -це якийсь об'єкт, суб'єкт, дія, що представляють інтерес для користувача. Для досягнення мети і вирішення поставленого завдання виділимо на основі аналізу предметної області наступні сутності: Типи продукції, Продукція, Виробники, Реалізація продукції, Послуги, Підрозділи, Надання послуг.

Рис. 2.2.1 Концептуальна модель бази даних

3.4 Розробка логічної та фізичної моделі даних

Згідно з результатами моделювання, отриманими при розробці концептуальної моделі даних, створена логічна модель бази даних, яка визначає таблиці бази, ключові поля таблиць та міжтабличні зв'язки:

Рис. 2.3.1 Логічна модель бази даних

У фізичній моделі даних відображені окремо всі таблиці бази даних. Для кожного атрибуту таблиці визначаються його тип, розмір та приналежність до ключового поля. Типи полів вибираються з переліку типів полів конкретної, попередньо визначеної для реалізації задачі, СУБД. Розміри полів повинні забезпечувати збереження даних таблиць з мінімальним перевищенням необхідних розмірів.

Таблица

Типи продукції

Назва поля

Тип поля

Розмір

Ключове поле

Код типу продукції

Числовий

int

Так

Назва типу

Текстовий

50

-

Довідник продукції

Назва поля

Тип поля

Розмір

Ключове поле

Код продукції

Числовий

int

Так

Назва

Текстовий

40

-

Код виробника

Числовий

int

-

Код типу продукції

Числовий

int

-

Довідник виробників

Назва поля

Тип поля

Розмір

Ключове поле

Код виробника

Числовий

int

Так

Назва виробу

Текстовий

30

-

Країна виробництва

Текстовий

50

-

Коефіцієнт націнки

Числовий

decimal

-

Реалізація продукції

Назва поля

Тип поля

Розмір

Ключове поле

№ чека

Числовий

int

-

Дата

Дата та час

date

-

Код продукції

Числовий

int

Так

Кількість

Числовий

int

-

Ціна

Числовий

decimal

-

Довідник послуг

Назва поля

Тип поля

Розмір

Ключове поле

Код послуги

Числовий

int

Так

Назва послуги

Текстовий

40

-

Вартість послуги

Текстовий

50

-

Надання послуг

Назва поля

Тип поля

Розмір

Ключове поле

Код послуги

Числовий

int

Так

Дата надання послуги

Дата та час

date

-

Код підрозділу

Числовий

int

Так

Номер послуги

Текстовий

50

-

Рис. 2.3.2 Фізична модель даних

3.5 Налаштування ПК для створення програмного додатку та роботи з базою даних

Для коректної роботи програмного додатку потрібно встановити певні програми, сервіси та компоненти на робочу машину, а саме:

1. ApacheWebServer. Цей програмний додаток необхідний для запуску локального сервера та роботи з ним на персональному комп'ютері. Це дасть змогу створення веб-додатку на персональному комп'ютері без необхідності розміщення його на віддаленому сервері. Доступ до локального сервера через URL-адресу можливий двома способами, через localhost ( рис. 3.4.1 ) або 127.0.0.1 ( рис. 3.4.2 ).

Рис. 3.4.1URL-адреса localhost

Рис. 3.4.2URL-адреса 127.0.0.1

2. MySQLсервер. Його потрібно встановити, щоб мати можливість підключатися та працювати з базами даних. Запустити його можна дуже просто, перейшовши до Системних налаштувань ->MySQL ->StartMySQLServer. Вікно запуску MySQLсерверу показано на рис. 3.4.3.

Рис. 3.4.3 Вікно запуску MySQL серверу

3. phpMyAdmin. Веб-додаток з відкритим кодом на мові PHP із графічним веб-інтерфейсом для адміністрування СУБД MySQL. Вікнороботи з phpMyAdmin показано на рис. 3.4.4.

Рис. 3.4.4 Вікно роботи з phpMyAdmin

4. Atom.Це зручний текстовий редактор з відкритим вихідним котом. Він потрібен для написання програмного додатку. Вікно роботи з текстовим редактором представлено на рис. 3.4.5.

Рис. 3.4.5 Інтерфейс Atom

3.6 Розробка програмного додатку

Програмний додаток дає можливість користувачу додавати, редагувати та видаляти данні з бази даних через веб інтерфейс. Також є можливість пошуку запису або записів у базі даних. Можна вибрати кількість відображених записів бази даних на одній сторінці(можливі значення 10, 25, 50, 100) для комфортної навігації. Є можливість сортування по всім стовбцям бази даних. Користувацький інтерфейс показаний на рис. 3.5.1.

Рис. 3.6.1 Користувацький інтерфейс програмного додатку

3.7 Висновки до розділу 3

На основі результатів першого та другого розділів було проаналізовано поставлену задачу і створено концептуальну, логічну та фізичну моделі бази даних. Була вибрана СУБД, в якій була створена база даних, визначені додаткові програми, необхідні для забезпечення ефективної роботи з СУБД. Зроблені налаштування веб серверу та MySQL серверу. Виконана розробка програмного додатку та розміщення його на локальному сервері.

ВИСНОВКИ

Проектування баз даних - це складний, багатокроковий процес перетворення інформаційного середовища ПО у інформаційну модель у вигляді бази даних. Цей процес складається з різних етапів, а саме: розробка стратегії автоматизації, аналіз ПО, побудова концептуальної моделі ПО, логічне та фізичне проектування БД. На сучасному етапі розвитку інформатики проектування баз даних перетворилося на цілком сформовану наукову дісціпліну, яка має у своєму складі формально-теоретичну та технологічну складові. Теоретичної основою проектування баз даних є теорія нормалізації, яка дозволяє чітко і строго відповісти на таке запитання: як слід проводити перетворення початкової схеми ПО таким чином, щоб результуюча схема бази даних була еквівалентна початковій і була краща за неї. Методологія проектування детально описує усі етапи життєвого циклу створення бази даних з використанням сучасних мов опису ПО.

На першому етапі були визначенні переваги баз даних та програмного забезпечення перед іншими схемами впорядкування даних та обрані мови SQL і PHPдля програмної реалізації бази даних бюджету. Були створені необхідні таблиці, форми, запити і звіти. В результаті вийшла зручна в плані користування база даних, здатна виконувати свої основні функції: У базу даних можна додавати та зберігати інформацію, редагувати та видаляти її. База даних здійснює різноманітні види пошуку в масі інформації, що зберігається, і забезпечує зручне представлення знайдених даних. Автоматизація зберігання, доступу та управління інформацією - це дуже зручний і сучасний спосіб використання інформації. Цей спосіб заощаджує час користувача і виключає можливість помилки через людський фактор.

Для реалізації поставленої мети застосовано два методи проектування БД: метод сутність-зв'язок і метод нормалізації відношень. Проведено детальний аналіз предметної області, сконструювано концептуальну, логічну та фізичну моделі .Проведено декомпозицію та нормалізацію відношень методом сутність-зв'язок.

Виконана курсова робота надала мені можливості ознайомитися з технологією проектування баз даних, та отримати практичний досвід у проектуванні бази даних з конкретної предметної області.

СПИСОК ВИКОРИСТАНИХ ДЖЕРЕЛ

1. Кузнецов С. Д. Основы баз данных. Курс лекций. - М.: Интернет-университет информационных технологий, 2005. -659 стр.

2. А. Горев, Р. Ахаян, С. Макашарипов «Эффективная работа с СУБД» - СПб. Питер, 1997. -704 стр.

3. Алекс Кригель, Борис Трухнов: SQL. Библия пользователя, Москва: Вильямс, 2010. - 800 стр.

4. М. Фленов, Transact-SQL, Санкт-Петербург: БХВ-Петербург, 2006. -340 стр.

5. Александр Бондарь, Microsoft SQL Server 2012, Санкт-Петербург: БХВ-Петербург, 2013. -270 стр.

6. Кевин Е. Кляйн, Дэниэл Кляйн, Брэнд Хант SQL. Справочник, Москва: Символ-Плюс, 2010. -360 стр.

7. Тоу, Дэн Настройка SQL; СПб: Питер, 2009. -980 стр.

ДОДАТОК

Код програмного додатку

<?php

// Переменные

$aColumns = array('id', 'checknum', 'product_code', 'mobile', 'price', 'start_date');

$sIndexColumn = "id";

$sTable = "tbl_datatable";

$gaSql['user'] = "root";

$gaSql['password'] = "root";

$gaSql['db'] = "test";

$gaSql['server'] = "localhost";

// Подключение к базе данных

function dbinit(&$gaSql) {

// Обработкаошибок

function fatal_error($sErrorMessage = '') {

header($_SERVER['SERVER_PROTOCOL'] .' 500 Internal Server Error');

die($sErrorMessage);

}

// MYSQL подключение

if ( !$gaSql['link'] = @mysql_connect($gaSql['server'], $gaSql['user'], $gaSql['password']) ) {

fatal_error('Could not open connection to server');

}

// MYSQL выборбазыданных

if ( !mysql_select_db($gaSql['db'], $gaSql['link']) ) {

fatal_error('Could not select database');

}

}

// AJAX EDIT FROM JQUERY

if ( isset($_GET['edit']) && 0 < intval($_GET['edit']) ) {

dbinit($gaSql);

// Сохранитьданные

if ( isset($_POST) ) {

$p = $_POST;

foreach ( $p as &$val ) $val = mysql_real_escape_string($val);

if ( !empty($p['checknum']) && !empty($p['product_code']) && !empty($p['mobile']) && !empty($p['price']) )

@mysql_query(" UPDATE $sTable SET checknum = '" . $p['checknum'] . "', product_code = '" . $p['product_code'] . "',

mobile = '" . $p['mobile'] . "', price = '" . $p['price'] . "' WHERE id = " . intval($_GET['edit']));

}

// Получитьданные

$query = mysql_query(" SELECT * FROM $sTable WHERE $sIndexColumn = " . intval($_GET['edit']), $gaSql['link']);

die(json_encode(mysql_fetch_assoc($query)));

}

// AJAX ADD FROM JQUERY

if ( isset($_GET['add']) && isset($_POST) ) {

dbinit($gaSql);

$p = $_POST;

foreach ( $p as &$val ) $val = mysql_real_escape_string($val);

if ( !empty($p['checknum']) && !empty($p['product_code']) && !empty($p['mobile']) && !empty($p['price']) ) {

@mysql_query(" INSERT INTO $sTable (checknum, product_code, mobile, price) VALUES ('" . $p['checknum'] . "',

'" . $p['product_code'] . "', '" . $p['mobile'] . "', '" . $p['price'] . "')");

$id = mysql_insert_id();

$query = mysql_query(" SELECT * FROM $sTable WHERE $sIndexColumn = " . $id, $gaSql['link']);

die(json_encode(mysql_fetch_assoc($query)));

}

}

// AJAX REMOVE FROM JQUERY

if ( isset($_GET['remove']) && 0 < intval($_GET['remove']) ) {

dbinit($gaSql);

// удалитьданные

@mysql_query(" DELETE FROM $sTable WHERE id = " . intval($_GET['remove']));

}

// AJAX FROM JQUERY

if ( isset($_GET['ajax']) ) {

dbinit($gaSql);

// QUERY LIMIT

$sLimit = "";

if ( isset($_GET['iDisplayStart']) && $_GET['iDisplayLength'] != '-1' ) {

$sLimit = "LIMIT " . intval($_GET['iDisplayStart']) . ", " . intval($_GET['iDisplayLength']);

}

// QUERY ORDER

$sOrder = "";

if ( isset($_GET['iSortCol_0']) ) {

$sOrder = "ORDER BY ";

for ( $i = 0; $i < intval($_GET['iSortingCols']); $i++ ) {

if ( $_GET['bSortable_' . intval($_GET['iSortCol_' . $i])] == "true" ) {

$sOrder .= $aColumns[intval($_GET['iSortCol_' . $i])] . " " .

( $_GET['sSortDir_' . $i] === 'asc' ? 'asc' : 'desc' ) . ", ";

}

}

$sOrder = substr_replace($sOrder, "", -2);

if ( $sOrder == "ORDER BY" ) $sOrder = "";

}

// QUERY SEARCH

$sWhere = "";

if ( isset($_GET['sSearch']) && $_GET['sSearch'] != "" ) {

$sWhere = "WHERE (";

for ( $i = 0; $i < count($aColumns); $i++ ) {

if ( isset($_GET['bSearchable_' . $i]) && $_GET['bSearchable_' . $i] == "true" ) {

$sWhere .= $aColumns[$i] . " LIKE '%" . mysql_real_escape_string($_GET['sSearch']) . "%' OR ";

}

}

$sWhere = substr_replace($sWhere, "", -3);

$sWhere .= ')';

}

// BUILD QUERY

for ( $i = 0; $i < count($aColumns); $i++ ) {

if ( isset($_GET['bSearchable_' . $i]) && $_GET['bSearchable_' . $i] == "true" && $_GET['sSearch_' . $i] != '' ) {

if ( $sWhere == "" ) $sWhere = "WHERE ";

else $sWhere .= " AND ";

$sWhere .= $aColumns[$i] . " LIKE '%" . mysql_real_escape_string($_GET['sSearch_' . $i]) . "%' ";

}

}

// FETCH

$sQuery = " SELECT SQL_CALC_FOUND_ROWS " . str_replace(" , ", " ",

implode(", ", $aColumns)) . " FROM $sTable $sWhere $sOrder $sLimit ";

$rResult = mysql_query($sQuery, $gaSql['link']) or fatal_error('MySQL Error: ' . mysql_errno());

$sQuery = " SELECT FOUND_ROWS() ";

$rResultFilterTotal = mysql_query($sQuery, $gaSql['link']) or fatal_error('MySQL Error: ' . mysql_errno());

$aResultFilterTotal = mysql_fetch_array($rResultFilterTotal);

$iFilteredTotal = $aResultFilterTotal[0];

$sQuery = " SELECT COUNT(" . $sIndexColumn . ") FROM $sTable ";

$rResultTotal = mysql_query($sQuery, $gaSql['link']) or fatal_error('MySQL Error: ' . mysql_errno());

$aResultTotal = mysql_fetch_array($rResultTotal);

$iTotal = $aResultTotal[0];

while ( $aRow = mysql_fetch_array($rResult) ) {

$row = array();

for ( $i = 0 ; $i < count($aColumns); $i++ ) {

if ( $aColumns[$i] == "version" ) $row[] = ( $aRow[$aColumns[$i]] == "0" ) ? '-' : $aRow[$aColumns[$i]];

else if ( $aColumns[$i] != ' ' ) $row[] = $aRow[$aColumns[$i]];

}

$output['aaData'][] = array_merge($row, array('<a data-id="row-' . $row[0] .

'" href="javascript:editRow(' . $row[0] . ');" class="btn btn-md btn-success">edit</a>&nbsp;<a href="javascript:removeRow(' .

$row[0] . ');" class="btn btn-default btn-md" style="background-color: #c83a2a;border-color: #b33426; color: #ffffff;">remove</a>'));

}

// RETURN IN JSON

die(json_encode($output));

}

?>

<html>

<head>

<title>Бюджетрухугрошовихкоштівнапідприємстві: надходження</title>

<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/css/bootstrap.min.css"

integrity="sha384-1q8mTJOASx8j1Au+a5WDVnPi2lkFfwwEAa8hDDdjZlpLegxhjVME1fgjWPGmkzs7" crossorigin="anonymous">

<link rel="stylesheet" type="text/css" href="//cdn.datatables.net/1.10.10/css/jquery.dataTables.css">

</head>

<body>

<h1>

Надходження до бюджету

</h1>

<br>

<div class="container-fluid">

<button type="button" style="padding:10px; margin:0 50px 15px 0;"

class="btn btn-primary btn-sm pull-right" data-toggle="modal" data-target="#add-modal"><b>Додатизапис</b></button>

<div class="row">

<div class="col-md-12 marginT20">

<div class="table-responsive demo-x content">

<table id="example" class="display" cellspacing="0" width="100%">

<thead>

<tr>

<th>#</th>

<th>№ чека</th>

<th>Кодпродукту</th>

<th>Кількість</th>

<th>Ціна</th>

<th>Датазапису</th>

<th style="background-image: none">Edit</th>

</tr>

</thead>

</table>

</div>

</div>

</div>

</div>

<div class="modal fade" id="edit-modal" tabindex="-1" role="dialog" aria-labelledby="edit-modal-label">

<div class="modal-dialog" role="document">

<div class="modal-content">

<form class="form-horizontal" id="edit-form">

<div class="modal-header">

<button type="button" class="close" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">&times;</span></button>

<h4 class="modal-title" id="edit-modal-label">Edit selected row</h4>

</div>

<div class="modal-body">

<input type="hidden" id="edit-id" value="" class="hidden">

<div class="form-group">

<label for="checknaum" class="col-sm-2 control-label">№ чека</label>

<div class="col-sm-10">

<input type="text" class="form-control" id="checknum" name="checknum" placeholder="Checknum" required>

</div>

</div>

<div class="form-group">

<label for="product_code" class="col-sm-2 control-label">Кодпродукту</label>

<div class="col-sm-10">

<input type="product_code" class="form-control" id="product_code" name="product_code" placeholder="Кодпродукту" required>

</div>

</div>

<div class="form-group">

<label for="mobile" class="col-sm-2 control-label">Кількість</label>

<div class="col-sm-10">

<input type="text" class="form-control" id="mobile" name="mobile" placeholder="Кількість" required>

</div>

</div>

<div class="form-group">

<label for="price" class="col-sm-2 control-label">Ціна</label>

<div class="col-sm-10">

<input type="text" class="form-control" id="price" name="price" placeholder="Ціна" required>

</div>

</div>

</div>

<div class="modal-footer">

<button type="button" class="btn btn-default" data-dismiss="modal">Close</button>

<button type="submit" class="btn btn-primary">Save changes</button>

</div>

</form>

</div>

</div>

</div>

<div class="modal fade" id="add-modal" tabindex="-1" role="dialog" aria-labelledby="add-modal-label">

<div class="modal-dialog" role="document">

<div class="modal-content">

<form class="form-horizontal" id="add-form">

<div class="modal-header">

<button type="button" class="close" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">&times;</span></button>

<h4 class="modal-title" id="add-modal-label">Add new row</h4>

</div>

<div class="modal-body">

<div class="form-group">

<label for="add-checknum" class="col-sm-2 control-label">№ чека</label>

<div class="col-sm-10">

<input type="text" class="form-control" id="add-checknum" name="checknum" placeholder="Checknum" required>

</div>

</div>

<div class="form-group">

<label for="add-product_code" class="col-sm-2 control-label">Кодпродукту</label>

<div class="col-sm-10">

<input type="product_code" class="form-control" id="add-product_code" name="product_code" placeholder="Кодпродукту" required>

</div>

</div>

<div class="form-group">

<label for="add-mobile" class="col-sm-2 control-label">Кількість</label>

<div class="col-sm-10">

<input type="text" class="form-control" id="add-mobile" name="mobile" placeholder="Кількість" required>

</div>

</div>

<div class="form-group">

<label for="add-price" class="col-sm-2 control-label">Ціна</label>

<div class="col-sm-10">

<input type="text" class="form-control" id="add-price" name="price" placeholder="Ціна" required>

</div>

</div>

</div>

<div class="modal-footer">

<button type="button" class="btn btn-default" data-dismiss="modal">Close</button>

<button type="submit" class="btn btn-primary">Save changes</button>

</div>

</form>

</div>

</div>

</div>

<script src="https://code.jquery.com/jquery-2.2.0.min.js" type="text/javascript"></script>

<script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/js/bootstrap.min.js"

integrity="sha384-0mSbJDEHialfmuBBQP6A4Qrprq5OVfW37PRR3j5ELqxss1yVqOtnepnHVP9aJ7xS" crossorigin="anonymous"></script>

<script type="text/javascript" charset="utf8" src="//cdn.datatables.net/1.10.10/js/jquery.dataTables.js"></script>

<script type="text/javascript" language="javascript" class="init">

$(document).ready(function() {

// ATW

if ( top.location.href != location.href ) top.location.href = location.href;

// Initialize datatable

$('#example').dataTable({

"aProcessing": true,

"aServerSide": true,

"ajax": "datatable.php?ajax"

});

// Save edited row

$("#edit-form").on("submit", function(event) {

event.preventDefault();

$.post("datatable.php?edit=" + $('#edit-id').val(), $(this).serialize(), function(data) {

var obj = $.parseJSON(data);

var tr = $('a[data-id="row-' + $('#edit-id').val() + '"]').parent().parent();

$('td:eq(1)', tr).html(obj.checknum);

$('td:eq(2)', tr).html(obj.product_code);

$('td:eq(3)', tr).html(obj.mobile);

$('td:eq(4)', tr).html(obj.price);

$('#edit-modal').modal('hide');

}).fail(function() { alert('Unable to save data, please try again later.'); });

});

// Add new row

$("#add-form").on("submit", function(event) {

event.preventDefault();

$.post("datatable.php?add", $(this).serialize(), function(data) {

var obj = $.parseJSON(data);

$('#example tbody tr:last').after('<tr role="row"><td class="sorting_1">' + obj.id

+ '</td><td>' + obj.checknum + '</td><td>' + obj.product_code + '</td><td>' + obj.mobile

+ '</td><td>' + obj.price + '</td><td>' + obj.start_date + '</td><td><a data-id="row-'

+ obj.id + '" href="javascript:editRow(' + obj.id

+ ');" class="btn btn-default btn-sm">edit</a>&nbsp;<a href="javascript:removeRow('

+ obj.id + ');" class="btn btn-default btn-sm">remove</a></td></tr>');

$('#add-modal').modal('hide');

}).fail(function() { alert('Unable to save data, please try again later.'); });

});

});

// Edit row

function editRow(id) {

if ( 'undefined' != typeof id ) {

$.getJSON('datatable.php?edit=' + id, function(obj) {

$('#edit-id').val(obj.id);

$('#checknum').val(obj.checknum);

$('#product_code').val(obj.product_code);

$('#mobile').val(obj.mobile);

$('#price').val(obj.price);

$('#edit-modal').modal('show')

}).fail(function() { alert('Unable to fetch data, please try again later.') });

} else alert('Unknown row id.');

}

// Remove row

function removeRow(id) {

if ( 'undefined' != typeof id ) {

$.get('datatable.php?remove=' + id, function() {

$('a[data-id="row-' + id + '"]').parent().parent().remove();

}).fail(function() { alert('Unable to fetch data, please try again later.') });

} else alert('Unknown row id.');

}

</script>

</body>

</html>

Размещено на Allbest.ru


Подобные документы

  • Системний аналіз бази даних за вхідною та вихідною документацією, визначення сутностей, атрибутів, зв’язків. Створення логічної моделі бази даних із застосуванням нормалізації, алгоритм її роботи. Розробка програмного забезпечення та інтерфейсу СУБД.

    курсовая работа [946,8 K], добавлен 02.07.2015

  • Основні поняття та особливості розробки баз даних в Microsoft Access. Побудова бази даних магазину побутової техніки: створення таблиць та встановлення зв’язків між ними, створення запитів, форм та звітів. Охорона праці і гігієна користувача комп'ютера.

    курсовая работа [2,5 M], добавлен 19.01.2010

  • Систематизація знань як основна функція бази даних. Логічне та фізичне проектування бази даних. Створення таблиць у базі даних, визначення основних зв'язків. Інструментальні засоби проектування та створення програмного забезпечення для обробки даних.

    курсовая работа [1,4 M], добавлен 29.04.2010

  • Специфікація вимог для кожного з двох користувачів. Концептуальне проектування бази даних. Визначення типів сутностей та зв’язків, доменів. Перетворення концептуальної моделі даних у логічну, визначення набору відношень, підтримки цілісності даних.

    курсовая работа [55,1 K], добавлен 15.03.2015

  • Основні відомості про реляційні бази даних, система управління ними. Основні директиви для роботи в середовищі MySQ. Визначення та опис предметної області. Створення таблиць та запитів бази даних автоматизованої бази даних реєстратури в поліклініці.

    курсовая работа [2,9 M], добавлен 06.11.2011

  • Вибір технологічного інструментарію для реалізації проекту. Розробка сценаріїв для створення бази даних і базових таблиць. Аналіз забезпечення декларативної цілісності реляційних даних. Особливість створення об'єктів для маніпулювання інформацією.

    курсовая работа [275,7 K], добавлен 17.05.2019

  • Загальний склад, структура таблиць та бази даних, опис інформаційних полів структури таблиць, головних процедур. Розробка інструкцій: адміністратору, менеджеру, користувачу, гостю. Собівартість, ціна розробки бази даних реалізації косметичної продукції.

    курсовая работа [4,6 M], добавлен 14.10.2014

  • Використання баз даних та інформаційних систем. Поняття реляційної моделі даних. Ключові особливості мови SQL. Агрегатні функції і угрупування даних. Загальний опис бази даних. Застосування технології систем управління базами даних в мережі Інтернет.

    курсовая работа [633,3 K], добавлен 11.07.2015

  • Історія розробки систем управління базами даних. Принципи проектування баз даних. Розробка проекту "клієнт-серверного" додатку, який гарантує дотримання обмежень цілісності, виконує оновлення даних, виконує запити і повертає результати клієнту.

    курсовая работа [1,8 M], добавлен 22.04.2023

  • Розробка бази даних "Автовокзал". Функціональні залежності між атрибутами. Ідентифікація атрибутів, які в реляційної моделі даних використовуються в якості первинних ключів реляційних відносин. Організація вибірки інформації з бази за допомогою запиту.

    курсовая работа [35,6 K], добавлен 19.08.2012

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.