summaryrefslogtreecommitdiff
path: root/demos/time-tracker/protected/pages/Docs/DatabaseDesign.page
diff options
context:
space:
mode:
authorwei <>2006-07-16 06:25:57 +0000
committerwei <>2006-07-16 06:25:57 +0000
commit567ab5d2b3545baf1fa536f23ea4f5ef6fe71d68 (patch)
tree88e4ca1fe0f06898a76bc9826a10744c4f789e77 /demos/time-tracker/protected/pages/Docs/DatabaseDesign.page
parentc7d41e5bea4a5f96979a08da9cc9f79355edfe70 (diff)
Rename APP_CODE directory name.
Diffstat (limited to 'demos/time-tracker/protected/pages/Docs/DatabaseDesign.page')
-rw-r--r--demos/time-tracker/protected/pages/Docs/DatabaseDesign.page42
1 files changed, 42 insertions, 0 deletions
diff --git a/demos/time-tracker/protected/pages/Docs/DatabaseDesign.page b/demos/time-tracker/protected/pages/Docs/DatabaseDesign.page
new file mode 100644
index 00000000..a306ba2c
--- /dev/null
+++ b/demos/time-tracker/protected/pages/Docs/DatabaseDesign.page
@@ -0,0 +1,42 @@
+<com:TContent ID="body">
+<h1>Database Design</h1>
+<p>The design steps we take in the sample application is a data centric
+approach. That is, we shall consider the application from the view
+point of data structures, data relationships and data integrity.
+Other designs starting from object and class design are also possible but is
+not the approach taken in this guide.
+</p>
+
+<h2>Entity Relationship</h2>
+<p>We start with the following entity relationship diagram.
+The bold text in each entity indicate required fields. The underline
+text indicates the entity's primary key, also denoted as <tt>PK</tt>.
+Entity relationships are indicated with arrows between entities and
+each relationship field is denoted with <tt>FK</tt>.</p>
+
+<p>The four entities: <tt>Project</tt>, <tt>Categories</tt>, <tt>TimeEntry</tt>
+and <tt>ProjectMembers</tt>
+makes up the time tracker application. While the other entities:
+<tt>Users</tt>, <tt>UserRoles</tt>, <tt>RoleTypes</tt> and <tt>Signon</tt> are
+usually found in applications where membership or user management is required.</p>
+
+<img src=<%~ db.png %> class="figure" />
+</p>
+
+<div class="info"><b>Info:</b>
+See <a href="http://en.wikipedia.org/wiki/Database_normalization">Database Normalization</a>
+for a quick reference regarding database design and normalization, especially the
+3rd normal form (3NF).
+</div>
+
+<h2>MySQL database</h2>
+<p>We shall concentrate on the MySQL database for this sample application.
+Other database engines are also possible and can be quite easily inter-changed.
+The SQL script to initialize the MySQL database is given below. The following
+SQL script was created using MySQL version 4.1.7.
+</p>
+
+<com:TTextHighlighter Language="sql" CssClass="source">
+<%= file_get_contents('protected/data/time-tracker-mysql.sql') %>
+</com:TTextHighlighter>
+</com:TContent> \ No newline at end of file