Upload
chrystal-wells
View
218
Download
0
Embed Size (px)
Citation preview
Web Application Development
Define ER model in QSEE
Generate SQL
Create DatabasemySQL
Write Script to use TableEditor
class
Process to create
A simple SQL table
Using PHPMyADMIN Or MySQL command
line
QSEE
• Multi-case diagramming tool– All UML diagrams– ++
• Entity-Relationship Diagrams– Generates SQL for various targets (including MySQL 4.0)– Implements relationships automatically
• 1- many : adds primary key on 1-side as columns in the many side to make foreign keys
• Many-many : adds an new link table with the primary keys from both sides as foreign keys (and a joint primary key)
• Dependent (weak) entities : foreign key becomes part of the primary key
– Sets up the appropriate integrity constraints• Action on delete and update for foreign keys
PHPMyAdmin
• GUI interface to MySQL server (shares)• GUI runs on stocks (the PHP server)• Full access to a database for
– Creating tables– Added data– Browsing the data– Import and Export of tables…– Execute SQL queries (DML) or definitions (DML)
• But ..
Command line MySQL
• Generated SQL comments are rejected by PHPMyAdmin
• login to shares directly using putty
• change directory to your project directory
• Enter:mysql –p
use database
source proj.sql
Editing a Table
• Table editor has to support the functions of:– Browsing the table– Inserting a new row (with validation and
defaults)– Deleting a row– Editing a row– Copying (or cloning) an existing row
Common Pattern
• Could write the script each time by hand• Could write a single ‘data-driven’ class
– Class must be able to read the table definition from the database (DESCRIBE command)
– Class must allow user to control the options offered
• Some open-source code exists– Here is one by Richard Heyes– http://www.phpguru.org/static/TableEditor.html
Main script for editor<?php
require_once('db.php');require_once('TableEditor.php');
$editor = new TableEditor($dblink, 'Member');$editor->setConfig('allowPKEditing', true); $editor->setConfig('allowASearch', false);
$editor->setConfig('perPage', 5);$editor->setConfig('title', 'Edit Members');$editor->setRequiredFields('memberid', 'name');
$editor->display();
?>