Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
workshopdb:database [2010/11/03 09:14]
smayr
workshopdb:database [2010/11/04 14:11] (current)
smayr
Line 3: Line 3:
   * Attendee   * Attendee
   * Workshop   * Workshop
 +  * Registration
   * Attendance   * Attendance
   * Version   * Version
Line 21: Line 22:
     RECID        INTEGER NOT NULL,     RECID        INTEGER NOT NULL,
     ID           VARCHAR(25),     ID           VARCHAR(25),
-    FirstName    VARCHAR(25), 
     LastName     VARCHAR(40) NOT NULL,     LastName     VARCHAR(40) NOT NULL,
 +    FirstName    VARCHAR(25),
        
     Address1       VARCHAR(255),     Address1       VARCHAR(255),
Line 28: Line 29:
     Address3       VARCHAR(255),     Address3       VARCHAR(255),
     City           VARCHAR(255),     City           VARCHAR(255),
-    StateRegion    VARCHAR(100),+    StateProv      VARCHAR(100),
     Country        VARCHAR(40),     Country        VARCHAR(40),
     PostalCode     VARCHAR(30),     PostalCode     VARCHAR(30),
-    PhomeHome      VARCHAR(20), +    PhoneHome      VARCHAR(20), 
-    PhomeWork      VARCHAR(20), +    PhoneWork      VARCHAR(20), 
-    PhomeMobile    VARCHAR(20),+    PhoneMobile    VARCHAR(20),
     Fax            VARCHAR(20),     Fax            VARCHAR(20),
     Email          VARCHAR(50),     Email          VARCHAR(50),
     Website        VARCHAR(255),     Website        VARCHAR(255),
   
-    Salutation   SMALLINT,+    Salutation   VARCHAR(10),
     Occupation   VARCHAR(50),     Occupation   VARCHAR(50),
          
Line 52: Line 53:
     ProfessionalOrg2Number VARCHAR(30),     ProfessionalOrg2Number VARCHAR(30),
     ProfessionalOrg3       VARCHAR(30),     ProfessionalOrg3       VARCHAR(30),
-    ProfessionalOrg4Number VARCHAR(30),+    ProfessionalOrg3Number VARCHAR(30),
          
     AccountNumber VARCHAR(30),     AccountNumber VARCHAR(30),
Line 124: Line 125:
     Address3       VARCHAR(255),     Address3       VARCHAR(255),
     City           VARCHAR(255),     City           VARCHAR(255),
-    StateRegion    VARCHAR(100),+    StateProv      VARCHAR(100),
     Country        VARCHAR(40),     Country        VARCHAR(40),
     PostalCode     VARCHAR(30),     PostalCode     VARCHAR(30),
-    PhomeHome      VARCHAR(20), +    PhoneHome      VARCHAR(20), 
-    PhomeWork      VARCHAR(20), +    PhoneWork      VARCHAR(20), 
-    PhomeMobile    VARCHAR(20),+    PhoneMobile    VARCHAR(20),
     Fax            VARCHAR(20),     Fax            VARCHAR(20),
     Email          VARCHAR(50),     Email          VARCHAR(50),
Line 140: Line 141:
     Instructions        BLOB SUB_TYPE 1 SEGMENT SIZE 2048,     Instructions        BLOB SUB_TYPE 1 SEGMENT SIZE 2048,
     HotelAccommodations BLOB SUB_TYPE 1 SEGMENT SIZE 2048,     HotelAccommodations BLOB SUB_TYPE 1 SEGMENT SIZE 2048,
 +    
     RecModifiedBy       VARCHAR(30),     RecModifiedBy       VARCHAR(30),
     RecModifiedDateTime TIMESTAMP     RecModifiedDateTime TIMESTAMP
Line 186: Line 188:
 </code> </code>
  
-=== Attendance ===+=== Registration ===
 <code sql> <code sql>
 /******************************************************************************/ /******************************************************************************/
Line 196: Line 198:
 /*                                   Tables                                   */ /*                                   Tables                                   */
 /******************************************************************************/ /******************************************************************************/
-CREATE TABLE ATTENDANCE (+CREATE TABLE REGISTRATION (
     ATTENDEERECID        INTEGER NOT NULL,     ATTENDEERECID        INTEGER NOT NULL,
     WORKSHOPRECID        INTEGER NOT NULL,     WORKSHOPRECID        INTEGER NOT NULL,
Line 206: Line 208:
     PaymentAmountPaid    NUMERIC(10,2) default 0 NOT NULL,     PaymentAmountPaid    NUMERIC(10,2) default 0 NOT NULL,
     ExpediteCertificates SMALLINT default 0,     ExpediteCertificates SMALLINT default 0,
-    EventCheckIn1        TIMESTAMP, 
-    EventCheckOut1       TIMESTAMP, 
-    EventCheckIn2        TIMESTAMP, 
-    EventCheckOut2       TIMESTAMP, 
-    EventCheckIn3        TIMESTAMP, 
-    EventCheckOut3       TIMESTAMP, 
     TotalReceptionGuests SMALLINT default 0,     TotalReceptionGuests SMALLINT default 0,
     TotalAudiometersToCalibrate SMALLINT default 0,     TotalAudiometersToCalibrate SMALLINT default 0,
     PacketNumber           INTEGER,     PacketNumber           INTEGER,
-    AttendanceConfirmation SMALLINT,+    REGISTRATIONConfirmation SMALLINT,
     Notes                  BLOB SUB_TYPE 1 SEGMENT SIZE 2048,     Notes                  BLOB SUB_TYPE 1 SEGMENT SIZE 2048,
 +    RecModifiedBy          VARCHAR(30),
 +    RecModifiedDateTime    TIMESTAMP
 +);
 +
 +/******************************************************************************/
 +/*                                Primary Keys                                */
 +/******************************************************************************/
 +ALTER TABLE REGISTRATION 
 +  ADD CONSTRAINT PK_REGISTRATION 
 +  PRIMARY KEY (ATTENDEERECID, WORKSHOPRECID);
 +
 +/******************************************************************************/
 +/*                                Foreign Keys                                */
 +/******************************************************************************/
 +ALTER TABLE REGISTRATION 
 +  ADD CONSTRAINT FK_REGISTRATION_ATTENDEE
 +  FOREIGN KEY (ATTENDEERECID) 
 +  REFERENCES ATTENDEE (RECID) 
 +    ON DELETE CASCADE ON UPDATE CASCADE;
 +
 +ALTER TABLE REGISTRATION 
 +  ADD CONSTRAINT FK_REGISTRATION_WORKSHOP
 +  FOREIGN KEY (WORKSHOPRECID) 
 +  REFERENCES WORKSHOP (RECID) 
 +    ON DELETE CASCADE ON UPDATE CASCADE;
 +    
 +    
 +/******************************************************************************/
 +/*                                  Triggers                                  */
 +/******************************************************************************/
 +SET TERM ^ ;
 +
 +/******************************************************************************/
 +/*                            Triggers for tables                             */
 +/******************************************************************************/
 +
 +/******************************************************************************/
 +/*                                 Privileges                                 */
 +/******************************************************************************/
 +</code>
 +
 +=== Attendance ===
 +<code sql>
 +/******************************************************************************/
 +/*                 Generated by IBExpert 10/25/2010 10:40:37                  */
 +/******************************************************************************/
 +SET NAMES NONE;
 +
 +/******************************************************************************/
 +/*                                   Tables                                   */
 +/******************************************************************************/
 +CREATE TABLE ATTENDANCE (
 +    ATTENDEERECID  INTEGER NOT NULL,
 +    WORKSHOPRECID  INTEGER NOT NULL,
 +    EventDate      DATE NOT NULL,
 +    EventCheckIn   TIMESTAMP,
 +    EventCheckOut  TIMESTAMP,
     RecModifiedBy          VARCHAR(30),     RecModifiedBy          VARCHAR(30),
     RecModifiedDateTime    TIMESTAMP     RecModifiedDateTime    TIMESTAMP
Line 226: Line 279:
 ALTER TABLE ATTENDANCE  ALTER TABLE ATTENDANCE 
   ADD CONSTRAINT PK_ATTENDANCE    ADD CONSTRAINT PK_ATTENDANCE 
-  PRIMARY KEY (ATTENDEERECID, WORKSHOPRECID);+  PRIMARY KEY (ATTENDEERECID, WORKSHOPRECID, EventDate);
  
 /******************************************************************************/ /******************************************************************************/
Line 238: Line 291:
  
 ALTER TABLE ATTENDANCE  ALTER TABLE ATTENDANCE 
-  ADD CONSTRAINT FK_WORKSHOP_ATTENDEE +  ADD CONSTRAINT FK_ATTENDANCE_WORKSHOP
   FOREIGN KEY (WORKSHOPRECID)    FOREIGN KEY (WORKSHOPRECID) 
   REFERENCES WORKSHOP (RECID)    REFERENCES WORKSHOP (RECID) 
     ON DELETE CASCADE ON UPDATE CASCADE;     ON DELETE CASCADE ON UPDATE CASCADE;
-  +     
- +    
 /******************************************************************************/ /******************************************************************************/
 /*                                  Triggers                                  */ /*                                  Triggers                                  */
Line 280: Line 333:
 == Entity Relationship Diagram == == Entity Relationship Diagram ==
 {{:workshopdb:workshopdb-erd.png|WorkshopDB: Entity Relationship Diagram}} {{:workshopdb:workshopdb-erd.png|WorkshopDB: Entity Relationship Diagram}}
 +
 +== Relation Scheme Diagram ==
 +{{:workshopdb:workshopdb-relationschemediagram.png|WorkshopDB: Relation Scheme Diagram}}
  
 == DataSet == == DataSet ==
  
-Create a dataset to have access to the underlying data tables.+Add a [[swdev:dotnet:Firebird Databases in .NET#adding_firebird_support_in_an_application|Database Data Source]] to the project. 
 + 
 +Create a dataset object to have access to the underlying data tables.
  
 <code csharp> <code csharp>
Line 296: Line 354:
  
         // use a table adapter to populate the Attendee datatable using ATTENDEE table         // use a table adapter to populate the Attendee datatable using ATTENDEE table
-        datasetWorkshopDBTableAdapters.ATTENDEETableAdapter adapt = new datasetWorkshopDBTableAdapters.ATTENDEETableAdapter(); +        datasetWorkshopDBTableAdapters.ATTENDEETableAdapter adaptAttendee = new datasetWorkshopDBTableAdapters.ATTENDEETableAdapter(); 
-        adapt.Fill(ds.ATTENDEE);+        adaptAttendee.Fill(ds.ATTENDEE); 
 + 
 +        datasetWorkshopDBTableAdapters.WORKSHOPTableAdapter adaptWorkshop = new datasetWorkshopDBTableAdapters.WORKSHOPTableAdapter(); 
 +        adaptWorkshop.Fill(ds.WORKSHOP); 
 + 
 +        datasetWorkshopDBTableAdapters.REGISTRATIONTableAdapter adaptRegistration = new datasetWorkshopDBTableAdapters.REGISTRATIONTableAdapter(); 
 +        adaptRegistration.Fill(ds.REGISTRATION); 
 + 
 +        datasetWorkshopDBTableAdapters.ATTENDANCETableAdapter adaptAttendance = new datasetWorkshopDBTableAdapters.ATTENDANCETableAdapter(); 
 +        adaptAttendance.Fill(ds.ATTENDANCE);
  
         // use the Attendee datatable as the DataContext for the Window         // use the Attendee datatable as the DataContext for the Window