| Author |
Topic |
|
tadin
Yak Posting Veteran
63 Posts |
Posted - 2007-04-18 : 22:36:33
|
| Hello Guys:I have included the schema that i build for sql serve 2005 below, My concern is with creating views and cursors.I open for any suggestions. Please try out the scheme;/*Created 4/5/2007Modified 4/14/2007Project Model Company Author Version Database MS SQL 2005 */use masterif exists (select name from sys.databases where name='clubDataBase') drop database clubdataBasegocreate database clubDataBasegouse clubDatabaseCreate table [Role]( [Role_Id] Char(3) NOT NULL, [Role_Type] Char(30) NOT NULL, [Description] Char(30) NOT NULL,Primary Key ([Role_Id])) goCreate table [Employee]( [employee_id] Char(20) NOT NULL, [Add_Id] Char(10) NOT NULL, [Role_Id] Char(3) NOT NULL, [Manager_Id] Char(20) NOT NULL, [Club_Id] Char(5) NOT NULL, [HireDate] Datetime NOT NULL, [PayRate] Real NOT NULL, [Status] Varchar(30) NOT NULL, [SSN] Char(12) NOT NULL, [Fname] Char(30) NOT NULL, [Lname] Char(30) NOT NULL, [Gender] Char(1) NOT NULL, [DOB] Datetime NOT NULL, [LastUpdated] Datetime NOT NULL,Primary Key ([employee_id])) goCreate table [Address]( [Add_Id] Char(10) NOT NULL, [AddressLine1] Varchar(30) NOT NULL, [AddressLine2] Varchar(30) NULL, [City] Varchar(20) NOT NULL, [State] Char(2) NOT NULL, [ZipCode] Char(10) NOT NULL, [Region] Char(20) NOT NULL,Primary Key ([Add_Id])) goCreate table [Club]( [Club_Id] Char(5) NOT NULL, [Add_Id] Char(10) NOT NULL, [RegionId] Char(5) NOT NULL, [ClubName] Varchar(30) NOT NULL, [PhoneNumber] Char(13) NOT NULL, [FaxNumber] Char(13) NULL, [Email] Varchar(30) NOT NULL, [WebSite] Varchar(30) NOT NULL, [Description] Varchar(30) NOT NULL,Primary Key ([Club_Id])) goCreate table [Equip_Inven]( [Equip_Inven_Id] Char(5) NOT NULL, [Club_Id] Char(5) NOT NULL, [Equip_Id] Char(5) NOT NULL, [Purchase_Date] Datetime NOT NULL, [Purchase_Cost] Money NULL,Primary Key ([Equip_Inven_Id])) goCreate table [Equipment]( [Equip_Id] Char(5) NOT NULL, UNIQUE ([Equip_Id]), [Equip_Name] Varchar(30) NOT NULL, [Equip_Type] Varchar(20) NOT NULL, [Equip_Desc] Varchar(30) NULL,Primary Key ([Equip_Id])) goCreate table [CustomerClass]( [Club_Id] Char(5) NOT NULL, [Class_Id] Char(5) NOT NULL, [StartDate] Datetime NOT NULL, [Member_Id] Char(10) NOT NULL, [MemClassFees] Money NOT NULL, [Description] Varchar(30) NULL,Primary Key ([Club_Id],[Class_Id],[StartDate],[Member_Id])) goCreate table [Classes]( [Class_Id] Char(5) NOT NULL, [ClassName] Varchar(30) NOT NULL, [ClassDescription] Varchar(30) NOT NULL,Primary Key ([Class_Id])) goCreate table [Member]( [Member_Id] Char(10) NOT NULL, [Club_Id] Char(5) NOT NULL, [Plan_Id] Char(5) NOT NULL, [Add_Id] Char(10) NOT NULL, [TotalFees] Money NOT NULL, [MemberFname] Char(20) NOT NULL, [MemberLname] Char(20) NOT NULL, [Phonenumber] Char(12) NOT NULL, [DOB] Datetime NOT NULL, [Gender] Char(1) NOT NULL, [Email] Char(20) NULL, [LastUpdated] Datetime NOT NULL,Primary Key ([Member_Id])) goCreate table [Health_Info]( [Member_Id] Char(10) NOT NULL, [Doctor_Name] Varchar(20) NOT NULL, [Allergy] Varchar(30) NULL, [Diseases] Varchar(30) NULL, [Emergency_Contact1] Char(20) NOT NULL, [Emergency_Phone1] Char(12) NOT NULL, [Contact_Relation1] Char(20) NOT NULL, [Emergency_Contact2] Char(20) NULL, [Emergency_Phone2] Char(12) NULL, [Contact_Relation2] Char(20) NULL,Primary Key ([Member_Id])) goCreate table [ClubClasses]( [StartDate] Datetime NOT NULL, [Club_Id] Char(5) NOT NULL, [Class_Id] Char(5) NOT NULL, [employee_id] Char(20) NOT NULL, [ClassAgeRange] Char(10) NULL, [ClubClassCost] Money NOT NULL, [ClubClassSchedule] Varchar(30) NOT NULL,Primary Key ([StartDate],[Club_Id],[Class_Id])) goCreate table [Plans]( [Plan_Id] Char(5) NOT NULL, [SuggestedPrice] Money NOT NULL, [PlanName] Varchar(30) NOT NULL, [PlanDuration] Varchar(20) NOT NULL, [Description] Varchar(30) NOT NULL,Primary Key ([Plan_Id])) goCreate table [ClubPlans]( [Club_Id] Char(5) NOT NULL, [Plan_Id] Char(5) NOT NULL, [Discount] Numeric(2,2) NULL, [Description] Varchar(30) NULL,Primary Key ([Club_Id],[Plan_Id])) goCreate table [MemberClubUsage]( [StartDate] Datetime NOT NULL, [Club_Id] Char(5) NOT NULL, [Member_Id] Char(10) NOT NULL, [EndDate] Datetime NOT NULL,Primary Key ([StartDate],[Club_Id],[Member_Id])) goCreate table [Facility]( [Facility_Id] Char(5) NOT NULL, UNIQUE ([Facility_Id]), [FacilityName] Varchar(30) NOT NULL, [FacilityType] Varchar(30) NOT NULL, [Description] Varchar(30) NULL,Primary Key ([Facility_Id])) goCreate table [FacilityUsage]( [StartDate] Char(1) NOT NULL, [Member_Id] Char(10) NOT NULL, [Club_Id] Char(5) NOT NULL, [Facility_Id] Char(5) NOT NULL, [EndDate] Datetime NULL,Primary Key ([StartDate],[Member_Id])) goCreate table [ClubFacilites]( [Club_Id] Char(5) NOT NULL, [Facility_Id] Char(5) NOT NULL, [OpenDate] Datetime NOT NULL, [CloseDate] Datetime NOT NULL, [Description] Varchar(30) NULL,Primary Key ([Club_Id],[Facility_Id])) goCreate table [Equip_Maintanence]( [Equip_Maintanence_Id] Char(5) NOT NULL, [Equip_Inven_Id] Char(5) NOT NULL, [Main_Date] Datetime NULL, [Main_Cost] Money NULL, [Comment] Varchar(30) NULL,Primary Key ([Equip_Maintanence_Id])) goCreate table [Guest]( [GuestId] Char(5) NOT NULL, [Member_Id] Char(10) NOT NULL, [Add_Id] Char(10) NOT NULL, [GuestName] Char(20) NOT NULL, [GuestDOB] Datetime NOT NULL,Primary Key ([GuestId])) goCreate table [RegionalOffice]( [RegionId] Char(5) NOT NULL, [Add_Id] Char(10) NOT NULL, [RegionName] Nvarchar(30) NOT NULL,Primary Key ([RegionId])) goAlter table [Employee] add foreign key([Role_Id]) references [Role] ([Role_Id]) on update no action on delete no action goAlter table [Employee] add foreign key([Manager_Id]) references [Employee] ([employee_id]) on update no action on delete no action goAlter table [ClubClasses] add foreign key([employee_id]) references [Employee] ([employee_id]) on update no action on delete no action goAlter table [Employee] add foreign key([Add_Id]) references [Address] ([Add_Id]) on update no action on delete no action goAlter table [Club] add foreign key([Add_Id]) references [Address] ([Add_Id]) on update no action on delete no action goAlter table [Member] add foreign key([Add_Id]) references [Address] ([Add_Id]) on update no action on delete no action goAlter table [Guest] add foreign key([Add_Id]) references [Address] ([Add_Id]) on update no action on delete no action goAlter table [RegionalOffice] add foreign key([Add_Id]) references [Address] ([Add_Id]) on update no action on delete no action goAlter table [Equip_Inven] add foreign key([Club_Id]) references [Club] ([Club_Id]) on update no action on delete no action goAlter table [Employee] add foreign key([Club_Id]) references [Club] ([Club_Id]) on update no action on delete no action goAlter table [ClubClasses] add foreign key([Club_Id]) references [Club] ([Club_Id]) on update no action on delete no action goAlter table [ClubPlans] add foreign key([Club_Id]) references [Club] ([Club_Id]) on update no action on delete no action goAlter table [MemberClubUsage] add foreign key([Club_Id]) references [Club] ([Club_Id]) on update no action on delete no action goAlter table [ClubFacilites] add foreign key([Club_Id]) references [Club] ([Club_Id]) on update no action on delete no action goAlter table [Equip_Maintanence] add foreign key([Equip_Inven_Id]) references [Equip_Inven] ([Equip_Inven_Id]) on update no action on delete no action goAlter table [Equip_Inven] add foreign key([Equip_Id]) references [Equipment] ([Equip_Id]) on update no action on delete no action goAlter table [ClubClasses] add foreign key([Class_Id]) references [Classes] ([Class_Id]) on update no action on delete no action goAlter table [CustomerClass] add foreign key([Member_Id]) references [Member] ([Member_Id]) on update no action on delete no action goAlter table [MemberClubUsage] add foreign key([Member_Id]) references [Member] ([Member_Id]) on update no action on delete no action goAlter table [FacilityUsage] add foreign key([Member_Id]) references [Member] ([Member_Id]) on update no action on delete no action goAlter table [Health_Info] add foreign key([Member_Id]) references [Member] ([Member_Id]) on update no action on delete no action goAlter table [Guest] add foreign key([Member_Id]) references [Member] ([Member_Id]) on update no action on delete no action goAlter table [CustomerClass] add foreign key([StartDate],[Club_Id],[Class_Id]) references [ClubClasses] ([StartDate],[Club_Id],[Class_Id]) on update no action on delete no action goAlter table [ClubPlans] add foreign key([Plan_Id]) references [Plans] ([Plan_Id]) on update no action on delete no action goAlter table [Member] add foreign key([Club_Id],[Plan_Id]) references [ClubPlans] ([Club_Id],[Plan_Id]) on update no action on delete no action goAlter table [ClubFacilites] add foreign key([Facility_Id]) references [Facility] ([Facility_Id]) on update no action on delete no action goAlter table [FacilityUsage] add foreign key([Club_Id],[Facility_Id]) references [ClubFacilites] ([Club_Id],[Facility_Id]) on update no action on delete no action goAlter table [Club] add foreign key([RegionId]) references [RegionalOffice] ([RegionId]) on update no action on delete no action go--create procedures and views--the procedure to randomly add members visit the clubcreate procedure getMemberClubUsageas declare @memID char(10), @clubID char(10) declare @begDate datetime declare mem_club_cursor cursor --randamly to add the member to visit clubs for select member_ID, c.club_ID from member, club c open mem_club_cursor fetch mem_club_cursor into @memID, @clubID while @@fetch_status=0 begin set @begDate=dateadd(day, rand()*-365, getdate()) insert into memberClubUsage select @begDate, @clubID, @memID, dateadd(minute, rand()*300, @begDate) fetch mem_club_cursor into @memID, @clubID end close mem_club_cursordeallocate mem_club_cursorgo--the procedure randomly add the member to classescreate procedure getMemberClubClassas insert into customerClass (startDate, club_ID, class_ID, Member_ID, memclassFees) select startDate, c.club_ID, class_ID, Member_ID, 150 from member m, clubClasses cgocreate view MembershipClubRegion_VWas select member_ID, memberFName, memberLName, C.Club_ID, C.ClubName, c.RegionID, r.RegionName from member m join club c on m.club_ID=c.Club_ID join regionaloffice r on c.regionID=r.regionIDgocreate view VistorbyMonthClub_VWas select clubName, datename(month, startdate)+'-'+datename(year, startdate) 'Month', count(*) TotalVistors from club c join memberclubusage mc on c.club_ID=mc.club_ID group by clubName, datename(month, startdate)+'-'+datename(year, startdate) go create view classClub_View as select c.class_ID, className, clubName, startDate from classes c join clubClasses cc on c.class_ID=cc.class_ID join club cl on cc.club_ID=cl.club_ID go--add testing data into database--insert data to table Addressinsert into Address ( Add_ID, Addressline1, City, State, Zipcode, Region) values ('C0001', '100 Washington St', 'Salem', 'NH', '01123', 'NE')insert into Address ( Add_ID, Addressline1, City, State, Zipcode, Region) values ('C0002', '180 Porland Ave', 'Providence', 'RI', '03123', 'NE')insert into Address ( Add_ID, Addressline1, City, State, Zipcode, Region) values ('C0003', '36 Huntington Ave', 'Boston', 'MA', '02111', 'NE')insert into Address ( Add_ID, Addressline1, City, State, Zipcode, Region) values ('C0004', '45 Marine St', 'August', 'ME', '31245', 'NE')insert into Address ( Add_ID, Addressline1, City, State, Zipcode, Region) values ('C0005', '400 Tel St', 'Vermont', 'VT', '11234', 'NE')insert into Address ( Add_ID, Addressline1, City, State, Zipcode, Region) values ('C0006', '100 Abc Ave', 'George Town', 'CT', '1111', 'NE')insert into Address ( Add_ID, Addressline1, City, State, Zipcode, Region) values ('B0001', '180 Matthew Ave', 'Worchest', 'NH', '01145', 'NE')insert into Address ( Add_ID, Addressline1, City, State, Zipcode, Region) values ('B0002', '1000 Elm St', 'Braintree', 'MA', '02184', 'NE')insert into Address ( Add_ID, Addressline1, City, State, Zipcode, Region) values ('A0001', '24 Edwin St', 'Quincy', 'MA', '02171', 'NE')insert into Address ( Add_ID, Addressline1, City, State, Zipcode, Region) values ('A0002', '57 Sterling Street', 'Malden', 'MA', '02148', 'NE')insert into Address ( Add_ID, Addressline1, City, State, Zipcode, Region) values ('A0003', '26 Royal St', 'Quincy', 'MA', '02171', 'NE')insert into Address ( Add_ID, Addressline1, City, State, Zipcode, Region) values ('A0004', '439 Newport Ave', 'Quincy', 'MA', '02171', 'NE')insert into Address ( Add_ID, Addressline1, City, State, Zipcode, Region) values ('A0005', '41 Old Brattleboro', 'August', 'ME', '31245', 'NE')insert into Address ( Add_ID, Addressline1, City, State, Zipcode, Region) values ('A0006', '110 N Central Ave', 'Montpelier', 'VT', '11234', 'NE')insert into Address ( Add_ID, Addressline1, City, State, Zipcode, Region) values ('A0007', '67 Marjoril Rd', 'George Town', 'CT', '1111', 'NE')insert into Address ( Add_ID, Addressline1, City, State, Zipcode, Region) values ('A0008', '1 Holden Row #2', 'Boston', 'MA', '02111', 'NE')insert into Address ( Add_ID, Addressline1, City, State, Zipcode, Region) values ('A0009', '67 Marjoril Rd', 'Braintree', 'MA', '02421', 'NE')insert into Address ( Add_ID, Addressline1, City, State, Zipcode, Region) values ('A0010', '253 Cambridge St Apt#2', 'Boston', 'MA', '02111', 'NE')insert into Address ( Add_ID, Addressline1, City, State, Zipcode, Region) values ('A0011', '30 Hill St', 'Randolph', 'MA', '02134', 'NE')insert into Address ( Add_ID, Addressline1, City, State, Zipcode, Region) values ('A0012', '87 Ocean St', 'Boston', 'MA', '02111', 'NE')insert into Address ( Add_ID, Addressline1, City, State, Zipcode, Region) values ('A0013', '7A Park Terrace', 'Boston', 'MA', '02112', 'NE')insert into Address ( Add_ID, Addressline1, City, State, Zipcode, Region) values ('A0014', '8 FoxRun #12', 'Boston', 'MA', '02113', 'NE')insert into Address ( Add_ID, Addressline1, City, State, Zipcode, Region) values ('A0015', '45 Upland Road', 'Boston', 'MA', '02114', 'NE')insert into Address ( Add_ID, Addressline1, City, State, Zipcode, Region) values ('A0016', '378 Medford St', 'Boston', 'MA', '02115', 'NE')insert into Address ( Add_ID, Addressline1, City, State, Zipcode, Region) values ('A0017', '46 Wheatland St', 'Boston', 'MA', '02116', 'NE')insert into Address ( Add_ID, Addressline1, City, State, Zipcode, Region) values ('A0018', '177 North Street', 'Boston', 'MA', '02117', 'NE')insert into Address ( Add_ID, Addressline1, City, State, Zipcode, Region) values ('A0019', '280 Breadway #4', 'Boston', 'MA', '02118', 'NE')insert into Address ( Add_ID, Addressline1, City, State, Zipcode, Region) values ('A0020', '106 Chester St', 'Boston', 'MA', '02119', 'NE')insert into Address ( Add_ID, Addressline1, City, State, Zipcode, Region) values ('A0021', '45 Upland Rd', 'Boston', 'MA', '02120', 'NE')insert into Address ( Add_ID, Addressline1, City, State, Zipcode, Region) values ('A0022', '47 Malvern St', 'Boston', 'MA', '02121', 'NE')insert into Address ( Add_ID, Addressline1, City, State, Zipcode, Region) values ('A0023', '49 Dwight St #1', 'Boston', 'MA', '02122', 'NE')insert into Address ( Add_ID, Addressline1, City, State, Zipcode, Region) values ('A0024', '97 LAWN STREET', 'Boston', 'MA', '02123', 'NE')insert into Address ( Add_ID, Addressline1, City, State, Zipcode, Region) values ('A0025', '418 Revere Beach Pkwy #74', 'Boston', 'MA', '02124', 'NE')go--insert data to table RegionalOfficeinsert into RegionalOffice ( RegionID, Add_ID, RegionName) values ('R0001', 'C0001', 'New Hampshire')insert into RegionalOffice ( RegionID, Add_ID, RegionName) values ('R0002', 'C0002', 'Rhode Island')insert into RegionalOffice ( RegionID, Add_ID, RegionName) values ('R0003', 'C0003', 'Massachussetts')insert into RegionalOffice ( RegionID, Add_ID, RegionName) values ('R0004', 'C0004', 'Marine')insert into RegionalOffice ( RegionID, Add_ID, RegionName) values ('R0005', 'C0005', 'Vermont')insert into RegionalOffice ( RegionID, Add_ID, RegionName) values ('R0006', 'C0006', 'Connecticut')go--insert data to table Clubinsert into Club ( Club_ID, Add_ID, RegionID, ClubName, PhoneNumber, Email, website, Description) values ('C0001', 'C0001', 'R0001', 'NH CLub1', '8952645456', 'mail@ClubNH', 'http://www.Club1NH.org', 'club')insert into Club ( Club_ID, Add_ID, RegionID, ClubName, PhoneNumber, Email, website, Description) values ('C0002', 'B0001', 'R0001', 'NH CLub2', '8953566889', 'mail@ClubNH', 'http://www.Club1NH.org', 'club')insert into Club ( Club_ID, Add_ID, RegionID, ClubName, PhoneNumber, Email, website, Description) values ('C0003', 'C0003', 'R0003', 'MA Club1', '6174561787', 'mail@MANH', 'http://www.Club1NH.org', 'club')insert into Club ( Club_ID, Add_ID, RegionID, ClubName, PhoneNumber, Email, website, Description) values ('C0004', 'B0002', 'R0003', 'MA Club2', '6175688989', 'mail@MANH', 'http://www.Club1NH.org', 'club')insert into Club ( Club_ID, Add_ID, RegionID, ClubName, PhoneNumber, Email, website, Description) values ('C0005', 'C0002', 'R0002', 'RI Club1', '4264567898', 'mail@ClubRI', 'http://www.Club1NH.org', 'club')insert into Club ( Club_ID, Add_ID, RegionID, ClubName, PhoneNumber, Email, website, Description) values ('C0006', 'C0004', 'R0004', 'Marine Club 1', '8915678989', 'mail@clubME', 'http://www.Club1NH.org', 'club')insert into Club ( Club_ID, Add_ID, RegionID, ClubName, PhoneNumber, Email, website, Description) values ('C0007', 'C0005', 'R0005', 'Vermont Club1', '7325641234', 'mail@clubVT', 'http://www.Club1NH.org', 'club')insert into Club ( Club_ID, Add_ID, RegionID, ClubName, PhoneNumber, Email, website, Description) values ('C0008', 'C0006', 'R0006', 'Connecticut Club1', '7888989999', 'mail@clubCT', 'http://www.Club1NH.org', 'club')go--insert data to table Plansinsert into Plans ( Plan_id, SuggestedPrice, PlanName, PlanDuration, Description) values ('P0001', 156.38, 'Family Plan', '1 year', 'plan')insert into Plans ( Plan_id, SuggestedPrice, PlanName, PlanDuration, Description) values ('P0002', 90, 'Single Plan', '1 Year', 'plan')insert into Plans ( Plan_id, SuggestedPrice, PlanName, PlanDuration, Description) values ('P0003', 70, 'Senior Plan', '1 Year', 'plan')insert into Plans ( Plan_id, SuggestedPrice, PlanName, PlanDuration, Description) values ('P0004', 30, 'promote plan', '1 year', 'plan')go--insert data to table ClubPlansinsert into ClubPlans ( Club_id, Plan_id) values ('C0001', 'P0001')insert into ClubPlans ( Club_id, Plan_id) values ('C0002', 'P0001')insert into ClubPlans ( Club_id, Plan_id) values ('C0003', 'P0001')insert into ClubPlans ( Club_id, Plan_id) values ('C0004', 'P0001')insert into ClubPlans ( Club_id, Plan_id) values ('C0005', 'P0001')insert into ClubPlans ( Club_id, Plan_id) values ('C0006', 'P0001')insert into ClubPlans ( Club_id, Plan_id) values ('C0007', 'P0001')insert into ClubPlans ( Club_id, Plan_id) values ('C0008', 'P0001')insert into ClubPlans ( Club_id, Plan_id) values ('C0001', 'P0002')insert into ClubPlans ( Club_id, Plan_id) values ('C0002', 'P0002')insert into ClubPlans ( Club_id, Plan_id) values ('C0003', 'P0002')insert into ClubPlans ( Club_id, Plan_id) values ('C0004', 'P0002')insert into ClubPlans ( Club_id, Plan_id) values ('C0005', 'P0002')insert into ClubPlans ( Club_id, Plan_id) values ('C0006', 'P0002')insert into ClubPlans ( Club_id, Plan_id) values ('C0007', 'P0002')insert into ClubPlans ( Club_id, Plan_id) values ('C0008', 'P0002')insert into ClubPlans ( Club_id, Plan_id) values ('C0003', 'P0004')go--insert data to table Classesinsert into Classes ( Class_id, className, classDescription) values ('A0001', 'Beginning Yoga', 'desc')insert into Classes ( Class_id, className, classDescription) values ('A0002', 'Advance Yoga', 'desc')insert into Classes ( Class_id, className, classDescription) values ('A0003', 'Swimming', 'desc')insert into Classes ( Class_id, className, classDescription) values ('A0004', 'Dancing', 'desc')insert into Classes ( Class_id, className, classDescription) values ('A0005', 'Introduction to Tennis', 'desc')go--insert data to table Roleinsert into Role ( Role_id, Role_Type, Description) values ('R01', 'Teacher', 'Class teacher')insert into Role ( Role_id, Role_Type, Description) values ('R02', 'Manager', 'club manager')go--insert data to table Employeeinsert into Employee ( Employee_id, add_id, role_id, Manager_id, club_id, HireDate, Payrate, status, SSN, Fname, Lname, Gender, DOB, LastUpdated) values ('E0001', 'A0001', 'R01', 'E0001', 'C0001', '1/1/1999', 15, ' ', '123456789', 'John', 'Joyce', 'M', '1/3/1968', '4/18/2007')insert into Employee ( Employee_id, add_id, role_id, Manager_id, club_id, HireDate, Payrate, status, SSN, Fname, Lname, Gender, DOB, LastUpdated) values ('E0002', 'A0002', 'R02', 'E0001', 'C0002', '12/1/2004', 25, ' ', '123456789', 'MacDonld', 'Harris', 'M', '10/12/1975', '4/18/2007')insert into Employee ( Employee_id, add_id, role_id, Manager_id, club_id, HireDate, Payrate, status, SSN, Fname, Lname, Gender, DOB, LastUpdated) values ('E0003', 'A0003', 'R02', 'E0001', 'C0003', '3/1/2006', 20, ' ', '123456789', 'Joane', 'Li', 'F', '11/5/1960', '4/18/2007')insert into Employee ( Employee_id, add_id, role_id, Manager_id, club_id, HireDate, Payrate, status, SSN, Fname, Lname, Gender, DOB, LastUpdated) values ('E0004', 'A0004', 'R02', 'E0001', 'C0004', '5/1/2006', 22, ' ', '123456789', 'Tony', 'Green', 'M', '8/12/1970', '4/18/2007')insert into Employee ( Employee_id, add_id, role_id, Manager_id, club_id, HireDate, Payrate, status, SSN, Fname, Lname, Gender, DOB, LastUpdated) values ('E0005', 'A0005', 'R02', 'E0001', 'C0005', '1/1/2007', 20, ' ', '123456789', 'Lisa', 'White', 'F', '11/10/1975', '4/18/2007')go--insert data to table ClubClassesinsert into ClubClasses ( startdate, club_id, class_id, employee_id, ClubclassCost, clubclassSchedule) values ('1/1/2007', 'C0001', 'A0001', 'E0002', 1500, 'Mon, Fri 7:30PM')insert into ClubClasses ( startdate, club_id, class_id, employee_id, ClubclassCost, clubclassSchedule) values ('2/1/2007', 'C0002', 'A0002', 'E0003', 1500, 'Mon, Fri 7:30PM')insert into ClubClasses ( startdate, club_id, class_id, employee_id, ClubclassCost, clubclassSchedule) values ('3/1/2007', 'C0003', 'A0003', 'E0004', 1500, 'Tue, Th 8:00PM')insert into ClubClasses ( startdate, club_id, class_id, employee_id, ClubclassCost, clubclassSchedule) values ('4/1/2007', 'C0004', 'A0004', 'E0005', 1500, 'Tue, Th 8:00PM')insert into ClubClasses ( startdate, club_id, class_id, employee_id, ClubclassCost, clubclassSchedule) values ('5/1/2007', 'C0005', 'A0005', 'E0002', 1500, 'Wed, Fri 7:00PM')insert into ClubClasses ( startdate, club_id, class_id, employee_id, ClubclassCost, clubclassSchedule) values ('4/5/2007', 'C0006', 'A0004', 'E0004', 1500, 'Sat, 8:00AM')go--insert data to table Memberinsert into Member ( Member_ID, Club_ID, Plan_ID, Add_ID, TotalFees, MemberFName, MemberLName, PhoneNumber, DOB, Gender, LastUpdated) values ('M0001', 'C0001', 'P0001', 'A0006', 153.38, 'John', 'He', '7812671567', '1/15/1965', 'M', '4/18/2007')insert into Member ( Member_ID, Club_ID, Plan_ID, Add_ID, TotalFees, MemberFName, MemberLName, PhoneNumber, DOB, Gender, LastUpdated) values ('M0002', 'C0002', 'P0001', 'A0007', 153.38, 'Joane', 'Good', '5678945689', '1/16/1975', 'F', '4/18/2007')insert into Member ( Member_ID, Club_ID, Plan_ID, Add_ID, TotalFees, MemberFName, MemberLName, PhoneNumber, DOB, Gender, LastUpdated) values ('M0003', 'C0003', 'P0001', 'A0008', 153.38, 'Sharon', 'Spears', '8123456789', '1/17/1985', 'F', '4/18/2007')insert into Member ( Member_ID, Club_ID, Plan_ID, Add_ID, TotalFees, MemberFName, MemberLName, PhoneNumber, DOB, Gender, LastUpdated) values ('M0004', 'C0004', 'P0001', 'A0009', 153.38, 'Sandy', 'Green', '9874567898', '2/18/1965', 'F', '4/18/2007')insert into Member ( Member_ID, Club_ID, Plan_ID, Add_ID, TotalFees, MemberFName, MemberLName, PhoneNumber, DOB, Gender, LastUpdated) values ('M0005', 'C0005', 'P0001', 'A0010', 153.38, 'Lisa', 'White', '7185642356', '1/19/1967', 'F', '4/18/2007')insert into Member ( Member_ID, Club_ID, Plan_ID, Add_ID, TotalFees, MemberFName, MemberLName, PhoneNumber, DOB, Gender, LastUpdated) values ('M0006', 'C0006', 'P0001', 'A0011', 153.38, 'William', 'Black', '5689741235', '1/20/1973', 'M', '4/18/2007')insert into Member ( Member_ID, Club_ID, Plan_ID, Add_ID, TotalFees, MemberFName, MemberLName, PhoneNumber, DOB, Gender, LastUpdated) values ('M0007', 'C0007', 'P0001', 'A0012', 153.38, 'Ollie', 'Green', '7812671567', '1/21/1975', 'M', '4/18/2007')insert into Member ( Member_ID, Club_ID, Plan_ID, Add_ID, TotalFees, MemberFName, MemberLName, PhoneNumber, DOB, Gender, LastUpdated) values ('M0008', 'C0008', 'P0001', 'A0013', 153.38, 'Louis', 'Brien', '5678945689', '1/15/1965', 'M', '4/18/2007')insert into Member ( Member_ID, Club_ID, Plan_ID, Add_ID, TotalFees, MemberFName, MemberLName, PhoneNumber, DOB, Gender, LastUpdated) values ('M0009', 'C0001', 'P0002', 'A0014', 90, 'Barbara', 'Stone', '8123456789', '1/16/1975', 'F', '4/18/2007')insert into Member ( Member_ID, Club_ID, Plan_ID, Add_ID, TotalFees, MemberFName, MemberLName, PhoneNumber, DOB, Gender, LastUpdated) values ('M0010', 'C0002', 'P0002', 'A0015', 90, 'Jenat', 'Jean', '9874567898', '1/17/1985', 'F', '4/18/2007')insert into Member ( Member_ID, Club_ID, Plan_ID, Add_ID, TotalFees, MemberFName, MemberLName, PhoneNumber, DOB, Gender, LastUpdated) values ('M0011', 'C0003', 'P0002', 'A0016', 90, 'Orlande', 'Moore', '7185642356', '2/18/1965', 'M', '4/18/2007')insert into Member ( Member_ID, Club_ID, Plan_ID, Add_ID, TotalFees, MemberFName, MemberLName, PhoneNumber, DOB, Gender, LastUpdated) values ('M0012', 'C0004', 'P0002', 'A0017', 90, 'Jerry', 'Dee', '5689741235', '1/19/1967', 'M', '4/18/2007')insert into Member ( Member_ID, Club_ID, Plan_ID, Add_ID, TotalFees, MemberFName, MemberLName, PhoneNumber, DOB, Gender, LastUpdated) values ('M0013', 'C0005', 'P0002', 'A0018', 90, 'Jim', 'Smith', '7812671567', '1/20/1973', 'M', '4/18/2007')insert into Member ( Member_ID, Club_ID, Plan_ID, Add_ID, TotalFees, MemberFName, MemberLName, PhoneNumber, DOB, Gender, LastUpdated) values ('M0014', 'C0006', 'P0002', 'A0019', 90, 'Jeff', 'Smith', '5678945689', '1/21/1975', 'M', '4/18/2007')insert into Member ( Member_ID, Club_ID, Plan_ID, Add_ID, TotalFees, MemberFName, MemberLName, PhoneNumber, DOB, Gender, LastUpdated) values ('M0015', 'C0007', 'P0002', 'A0020', 90, 'Michael', 'Sam', '8123456789', '1/15/1965', 'M', '4/18/2007')insert into Member ( Member_ID, Club_ID, Plan_ID, Add_ID, TotalFees, MemberFName, MemberLName, PhoneNumber, DOB, Gender, LastUpdated) values ('M0016', 'C0008', 'P0002', 'A0021', 90, 'Michelle', 'Lee', '9874567898', '1/16/1975', 'F', '4/18/2007')insert into Member ( Member_ID, Club_ID, Plan_ID, Add_ID, TotalFees, MemberFName, MemberLName, PhoneNumber, DOB, Gender, LastUpdated) values ('M0017', 'C0003', 'P0004', 'A0022', 30, 'Judy', 'Andy', '7185642356', '1/17/1985', 'M', '4/18/2007')insert into Member ( Member_ID, Club_ID, Plan_ID, Add_ID, TotalFees, MemberFName, MemberLName, PhoneNumber, DOB, Gender, LastUpdated) values ('M0018', 'C0001', 'P0001', 'A0023', 153.38, 'Pierre', 'Pierre', '5689741235', '2/18/1965', 'M', '4/18/2007')insert into Member ( Member_ID, Club_ID, Plan_ID, Add_ID, TotalFees, MemberFName, MemberLName, PhoneNumber, DOB, Gender, LastUpdated) values ('M0019', 'C0002', 'P0001', 'A0024', 153.38, 'Tony', 'Kelliher', '7812671567', '1/19/1967', 'F', '4/18/2007')insert into Member ( Member_ID, Club_ID, Plan_ID, Add_ID, TotalFees, MemberFName, MemberLName, PhoneNumber, DOB, Gender, LastUpdated) values ('M0020', 'C0003', 'P0001', 'A0025', 153.38, 'Antonia', 'Sheeran', '5678945689', '1/20/1973', 'M', '4/18/2007')insert into Member ( Member_ID, Club_ID, Plan_ID, Add_ID, TotalFees, MemberFName, MemberLName, PhoneNumber, DOB, Gender, LastUpdated) values ('M0021', 'C0004', 'P0001', 'A0007', 153.38, 'Scott', 'Brown', '8123456789', '1/21/1975', 'M', '4/18/2007')goexec getMemberClubUsageexec getMemberClubClassSet quoted_identifier ongoSet quoted_identifier offgo |
|
|
jezemine
Master Smack Fu Yak Hacker
2886 Posts |
Posted - 2007-04-18 : 23:30:53
|
one issue is that it won't work on a server with a case-sensitive collation.  www.elsasoft.org |
 |
|
|
jezemine
Master Smack Fu Yak Hacker
2886 Posts |
Posted - 2007-04-18 : 23:58:11
|
few things I noticed just skimming over your script: you have a lot of ids like C00001 and M00003. I would just use int identity(1,1) in these columns. also ints perform better when you need to join on the pk. Does the extra letter really convey any useful information? as you can tell I am not a fan of letters in ids.also you have only two procs, and neither takes any arguments. also their purpose is not clear. both are "getters" but neither returns any data... how will client get data out of this db? ad hoc sql? that's discouraged. the one using the cursor is strange - it inserts random values! is this really what you want, or is it to create some test data? seems strange. www.elsasoft.org |
 |
|
|
tadin
Yak Posting Veteran
63 Posts |
Posted - 2007-04-19 : 00:36:47
|
| hummm.....Honestly, i'm in the test stage and i'm a sql beginner,that's my excuse. But you really point out some great information.I'll have to work on it.I totally agree with the primary key being a char on member table. I will need to certainly do something about it.But how is case-sensitive have to do with sql server 2005.Also, i'm stressing on views. Any suggestion on that, what would be best thing to aproach views since the views are implementing on all the columns...Any insight would be great. |
 |
|
|
jezemine
Master Smack Fu Yak Hacker
2886 Posts |
Posted - 2007-04-19 : 00:50:23
|
I wasn't trying to attack you or anything, just offering my opinion since you asked for it. everyone starts out somewhere, no excuse necessary. about the case-sensitive thing: probably it doesn't matter for you because you are using a case-insensitive collation. On a case-sensitive server (what I use on my dev box) the table "MyTable" is different from "myTABLE" is different from "mytable". also column names are case-sensitive. in your script you are not consistent with the case of your object and column names, so it wouldn't run on my server. that's all i meant.not sure what advice you are looking for on the views. Usually I use views to encapsulate common queries. if these queries will be run a lot, it makes sense to put them in views. However I don't like the idea of putting "View" or "VW" in the object name. i really HATE hungarian notation... EDIT: for fun ways to abuse hungarian and other naming styles give this a read: http://mindprod.com/jgloss/unmainnaming.html www.elsasoft.org |
 |
|
|
tadin
Yak Posting Veteran
63 Posts |
Posted - 2007-04-19 : 15:28:07
|
| Yes.I'm up for any suggestion. I believe more brains are better than one and more experience are better than none.i have worked only on sql server only so i don't know on case-sensitity.yes, i agree that i'm not consistent on naming object.Also, on case-sensitive server could give me some examples particularly on which server names. |
 |
|
|
|
|
|