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/02 17:02]
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 187: Line 188:
 </code> </code>
  
-=== Attendance ===+=== Registration ===
 <code sql> <code sql>
 /******************************************************************************/ /******************************************************************************/
Line 197: 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,
     RegistrationDate     DATE NOT NULL,     RegistrationDate     DATE NOT NULL,
     PricingPackage       SMALLINT NOT NULL,     PricingPackage       SMALLINT NOT NULL,
- PaymentMethod        SMALLINT, +    PaymentMethod        SMALLINT, 
- PaymentAmountTotal   NUMERIC(10,2) default 0 NOT NULL, +    PaymentAmountTotal   NUMERIC(10,2) default 0 NOT NULL, 
- PaymentAmountDue     NUMERIC(10,2) default 0 NOT NULL, +    PaymentAmountDue     NUMERIC(10,2) default 0 NOT NULL, 
- 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 227: 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 239: 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 332:
  
 == Entity Relationship Diagram == == Entity Relationship Diagram ==
 +{{:workshopdb:workshopdb-erd.png|WorkshopDB: Entity Relationship Diagram}}
 +
 +== Relation Scheme Diagram ==
 +{{:workshopdb:workshopdb-relationschemediagram.png|WorkshopDB: Relation Scheme Diagram}}
 +
 +== DataSet ==
 +
 +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>
 +public partial class MainWindow : Window
 +{
 +    public MainWindow()
 +    {
 +        InitializeComponent();
 +
 +        // construct dataset
 +        datasetWorkshopDB ds = new datasetWorkshopDB();
 +
 +        // use a table adapter to populate the Attendee datatable using ATTENDEE table
 +        datasetWorkshopDBTableAdapters.ATTENDEETableAdapter adaptAttendee = new datasetWorkshopDBTableAdapters.ATTENDEETableAdapter();
 +        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
 +        this.DataContext = ds.ATTENDEE.DefaultView;
 +    }
 +}
 +</code>