Building An Access Database in Dreamweaver MX 2004
The first step in building our client's intranet application is to build the database that will fuel it. Based on the responses we received during our planning phase, we will be building four database tables to store our data. After the tables are created, we can define relationships between those that need them.
Creating the Tables
The four tables we are going to build are the Human Resources table, the Information Services table, the Departmental Site Management table, and the Username/Password table.
The Human Resources table will store all of the information that KrystalClear might have in a typical employee file. Demographic information like name, address, and contact information would be present along with organizational information such as title, department, location, and the name of the employee's supervisor. We are going to start with the basics and, if KrystalClear wants to, it can add fields at a later date.
Exercise 1 Creating the Human Resources table
Open Microsoft Access on your workstation.
From the menu bar, select File, New.
-
In the New File panel, shown in Figure 1, select a Blank Database.
-
Using the File New Database dialog box, create a folder called KrystalClear in your My Documents folder. As shown in Figure 2, name the file kc_corporation_0493.mdb and click Create.
In the database window, click the Tables category and then choose Create Table in Design View.
In the Design view, add the data using the parameters shown in Table 1.
Right-click on the gray box to the left of EmployeeID and choose Primary Key from the context menu. By indicating that EmployeeID is a primary key, no two records will be allowed to have the same Employee ID. This ensures that no duplicate entries are added to the database.
Save the table as tbHR and close the table.
Figure 1 Choose to create a blank database from the New File panel.
Figure 2 For security reasons, give your database file a unique name.
Table 1 Sample data for Human Resources table
Field Name |
Data Type |
Field Size |
Required |
Allow Zero Length |
Indexed |
EmployeeID |
Text |
11 |
Yes |
No |
Yes (No Duplicates) |
LastName |
Text |
50 |
No |
Yes |
No |
FirstName |
Text |
50 |
No |
Yes |
No |
HomeAdd |
Text |
50 |
No |
Yes |
No |
City |
Text |
25 |
No |
Yes |
No |
HomeState |
Text |
2 |
No |
Yes |
No |
Zip |
Text |
10 |
No |
Yes |
No |
HomePhone |
Text |
50 |
No |
Yes |
No |
Title |
Text |
50 |
No |
Yes |
No |
Department |
Text |
50 |
No |
Yes |
No |
Extension |
Text |
10 |
No |
Yes |
No |
HireDate |
Date/ Time |
N/A |
No |
N/A |
No |
EditPages |
Yes/ |
N/A |
No |
No |
No |
You should now have a table that looks like the one in Figure 3.
Figure 3 The structure of the Human Resources table.
NOTE
Naming Conventions
It is a good idea to get into the habit of applying naming conventions to your database objects. For instance, by naming the table tbHR, we can quickly identify this object as a table by the tb prefix. It doesn't seem as important when looking at the table name from within Access, but when you are staring at 300 lines of code and trying to identify whether your code is correct, it makes things a lot easier. In addition, avoid using spaces in your filenames and field names. There are issues that can arise from within your SQL queries if you use spaces. Instead, run the characters together and use capital letters to signify where a space might occur (as in LastName). If you really want to make it easier to identify your tables when searching through your code, you can add a prefix to the column name that matches the table name. For instance, the LastName column in the tbHR table would be named HRLastName.
We now have a table that contains the fields for our employees. For the most part, the fields pertain to their contact information and company status. The EditPages field, however, was created in response to our communication with KrystalClear. This field allows Human Resources to indicate who has access to edit pages. When combined with the Department field, not only do we know whether that employee can edit pages, but for what department.
The next step is to create the table that allows Information Services to assign an asset (for example, computer, phone, or pager) to a specific employee.
Exercise 2 Building the Information Services table
In the Database window, select the Tables category and choose Create Table in Design View.
In Design view, add the data using the parameters shown in Table 2.
Right-click the gray box to the left of AssetID and choose Primary Key from the context menu.
Save the table as tbIS and close it.
Table 2 Sample data for Information Services table
Field Name |
Data Type |
Field Size |
Required |
Allow Zero Length |
Indexed |
AssetID |
AutoNumber |
Long Integer |
N/A |
N/A |
Yes (No Duplicates) |
EmployeeID |
Text |
11 |
No |
Yes |
No |
AssetType |
Text |
25 |
No |
Yes |
No |
AssetBrand |
Text |
25 |
No |
Yes |
No |
AssetModel |
Text |
50 |
No |
Yes |
No |
AssetSerial |
Text |
50 |
No |
Yes |
No |
Date Assigned |
Date/Time |
N/A |
No |
N/A |
No |
Date Returned |
Date/Time |
N/A |
No |
N/A |
No |
ReturnReason |
Memo |
N/A |
No |
Yes |
No |
You should now have a table that looks like the one in Figure 4.
Looking over the table, you should see a group of fields that have unique names, data types that match the data that will be stored in the records, and appropriate field lengths. Be careful when setting your field lengths because the sum of your field sizes directly affects the size of your database. It's a good idea to estimate as closely as possible how many characters are going to be necessary for a field. Although you don't want to devote too many characters and increase the size of your database, you also don't want to chop off pieces of data (which Access will do if the data submitted is too large for the field size).
In addition to the field name, data type, and size, we have also indicated that none of the fields in the database should be required fields and only the AssetID field should be an AutoNumber field. When building dynamic applications, it is better to use a technique called form verification to ensure that the information the user has entered meets your requirements. If you choose to allow the database to determine if a field is required, when the missing data is encountered, a very cryptic error message is displayed in the browser (which has a tendency to freak users out). If, however, you use form validation, you can customize your error message with a clear, polite message that lets the user know what is wrong and how she can remedy it.
Figure 4 The structure of the Information Services table.
The third table that we are going to create allows each department to update information contained in its departmental intranet site.
Exercise 3 Creating the tables for Departmental Site Management
In the Database window, select the Tables category and choose Create Table in Design View.
In the Design view, add the data using the parameters shown in Table 3.
Right-click the gray box to the left of PageID and choose Primary Key from the context menu.
Save the table as tbPageMgmt and close it.
Table 3 Sample data for Departmental Site Management table
Field Name |
Data Type |
Field Size |
Required |
Allow Zero Length |
Indexed |
PageID |
AutoNumber |
Long Integer |
N/A |
N/A |
Yes (No Duplicates) |
Department |
Text |
50 |
No |
Yes |
No |
PageTitle |
Text |
100 |
No |
Yes |
No |
NavLink1Text |
Text |
50 |
No |
Yes |
No |
NavLink1URL |
Text |
50 |
No |
Yes |
No |
NavLink2Text |
Text |
50 |
No |
Yes |
No |
NavLink2URL |
Text |
50 |
No |
Yes |
No |
NavLink3Text |
Text |
50 |
No |
Yes |
No |
NavLink3URL |
Text |
50 |
No |
Yes |
No |
MainPageData |
Memo |
N/A |
No |
Yes |
No |
LastUpdated |
Date/Time |
N/A |
No |
N/A |
No |
You should now have a table that looks like the one in Figure 5.
Figure 5 The structure of the Departmental Site Management table.
The last table we need to create stores the usernames and passwords that allow the users to log in and out of the intranet. We store this information in a separate table so that the employee can have her own username and password without it being a visible part of her employee record.
Exercise 4 Creating Username/Password tables
In the Database window, select the Tables category and choose Create Table in Design View.
In the Design view, add the data using the parameters shown in Table 4.
Right-click the gray box to the left of UserID and choose Primary Key from the context menu.
Save the table as tbUserID and close it.
Table 4 Sample data for Username/Password table
Field Name |
Data Type |
Field Size |
Required |
Allow Zero Length |
Indexed |
UserID |
AutoNumber |
Long Integer |
N/A |
N/A |
Yes (No Duplicates) |
EmployeeID |
Text |
11 |
No |
Yes |
No |
Username |
Text |
50 |
No |
Yes |
No |
Password |
Text |
50 |
No |
Yes |
No |
LastLogin |
Date/Time |
N/A |
No |
N/A |
No |
You should now have a table that looks like the one in Figure 6.
Figure 6 The structure of the Username/Password table.