---Lottery observeh database design Function getSpace lottery /* -- Author:geovindu Tu Juwen -- Date: 20180427 In order to generate code for self-writing. Generate code with comments and relational tables based on Metedata, the table must have a primary key and comments CREATE DATABASE LotteryDrawing GO USE LotteryDrawing GO */ ---Award Project List AwardProject IF EXISTS (select * from sysobjects where id = object_id(N'dbo.AwardProject') and OBJECTPROPERTY(id, N'IsUserTable') = 1) DROP TABLE AwardProject GO CREATE TABLE AwardProject ( ProjectId INT IDENTITY(1,1) PRIMARY KEY NOT NULL, ProjectName NVARCHAR(300) NOT NULL, -- the project name, displayed at the annual meeting ProjectYear VARCHAR(20) NOT NULL, -- year name ProjectDate DATETIME DEFAULT(GETDATE()) -- creation date ) GO IF NOT EXISTS (SELECT * FROM ::fn_listextendedproperty(N'MS_Description' , N'SCHEMA',N'dbo', N'TABLE',N'AwardProject', null,null)) EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'獎項項目表' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'AwardProject', @level2type=NULL,@level2name=NULL GO --column description EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'項目ID' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'AwardProject', @level2type=N'COLUMN',@level2name=N'ProjectId' GO EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'project name, display annual meeting' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE' ,@level1name=N'AwardProject', @level2type=N'COLUMN',@level2name=N'ProjectName' GO EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'年度名稱' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'AwardProject', @level2type=N'COLUMN',@level2name=N'ProjectYear' GO EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'創建日期' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'AwardProject', @level2type=N'COLUMN',@level2name=N'ProjectDate' GO SELECT * FROM dbo.AwardProject GO --Lottery employee table Employee IF EXISTS (select * from sysobjects where id = object_id(N'dbo.Employee') and OBJECTPROPERTY(id, N'IsUserTable') = 1) DROP TABLE Employee GO CREATE TABLE Employee ( EmployeeId INT IDENTITY(1,1) PRIMARY KEY NOT NULL, EmployeeProjectId INT FOREIGN KEY REFERENCES AwardProject(ProjectId), -- foreign key, project ID EmployeeNO VARCHAR(30) NOT NULL, -- employee number EmployeeName NVARCHAR(100) NOT NULL, -- employee name EmployeeMobile VARCHAR(20) NOT NULL, --mobile phone number --skype EmployeeDate DATETIME DEFAULT(GETDATE()) ) GO ---Table description IF NOT EXISTS (SELECT * FROM ::fn_listextendedproperty(N'MS_Description' , N'SCHEMA',N'dbo', N'TABLE',N'TicketManage', null,null)) EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'抽獎員工表' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'Employee', @level2type=NULL,@level2name=NULL GO --column description EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'員工ID' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'Employee', @level2type=N'COLUMN',@level2name=N'EmployeeId' GO EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'外鍵,項目ID' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'Employee', @level2type=N'COLUMN',@level2name=N'EmployeeProjectId' GO EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'員工編號' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'Employee', @level2type=N'COLUMN',@level2name=N'EmployeeNO' GO EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'員工姓名' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'Employee', @level2type=N'COLUMN',@level2name=N'EmployeeName' GO EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'手機號碼' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'Employee', @level2type=N'COLUMN',@level2name=N'EmployeeMobile' GO EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'日期' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'Employee', @level2type=N'COLUMN',@level2name=N'EmployeeDate' GO SELECT * FROM dbo.Employee GO --Award Table AwardType IF EXISTS (select * from sysobjects where id = object_id(N'dbo.AwardType') and OBJECTPROPERTY(id, N'IsUserTable') = 1) DROP TABLE AwardType GO CREATE TABLE AwardType ( AwardTypeId INT IDENTITY(1,1) PRIMARY KEY NOT NULL, AwardProjectId INT FOREIGN KEY REFERENCES AwardProject(ProjectId), -- foreign key, project ID AwardName NVARCHAR(100) NOT NULL, --Award name, such as: Grand Prize, First Prize AwardPersonNumber INT DEFAULT(1), -- the number of awards AwardVeryNumber INT DEFAULT(1), -- the number of people drawn each time AwardVeryProduct INT DEFAULT(1) -- the number of products per person for the award ) GO ---Table description IF NOT EXISTS (SELECT * FROM ::fn_listextendedproperty(N'MS_Description' , N'SCHEMA',N'dbo', N'TABLE',N'TicketManage', null,null)) EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'奖项表 ' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'AwardType', @level2type=NULL,@level2name=NULL GO --column description EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'奖项ID' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'AwardType', @level2type=N'COLUMN',@level2name=N'AwardTypeId' GO EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'外鍵,項目ID' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'AwardType', @level2type=N'COLUMN',@level2name=N'AwardProjectId' GO EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'Award name, such as: Grand Prize, First Prize' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N 'TABLE',@level1name=N'AwardType', @level2type=N'COLUMN',@level2name=N'AwardName' GO EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'獎項人數' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'AwardType', @level2type=N'COLUMN',@level2name=N'AwardPersonNumber' GO EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'每次抽的人數' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'AwardType', @level2type=N'COLUMN',@level2name=N'AwardVeryNumber' GO EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'Awards products per person' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name =N'AwardType', @level2type=N'COLUMN',@level2name=N'AwardVeryProduct' GO SELECT * FROM dbo.AwardType GO --Award Product IF EXISTS (select * from sysobjects where id = object_id(N'dbo.AwardProduct') and OBJECTPROPERTY(id, N'IsUserTable') = 1) DROP TABLE AwardProduct GO CREATE TABLE AwardProduct ( ProductId INT IDENTITY(1,1) PRIMARY KEY NOT NULL, ProductAwardTypeId INT FOREIGN KEY REFERENCES AwardType(AwardTypeId), -- foreign key, award type ID ProductName NVARCHAR(200) NOT NULL, -- Prize name ProductNo VARCHAR(50) NULL, -- Prize number (easy to scan code) ProductTotal INT NOT NULL -- the number of prizes (the total number should be consistent with the number of prizes * the number of each prize, the program needs to verify) ) GO ---Table description IF NOT EXISTS (SELECT * FROM ::fn_listextendedproperty(N'MS_Description' , N'SCHEMA',N'dbo', N'TABLE',N'AwardProduct', null,null)) EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'奖品表' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'AwardProduct', @level2type=NULL,@level2name=NULL GO --column description EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'獎品ID' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'AwardProduct', @level2type=N'COLUMN',@level2name=N'ProductId' GO EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'外鍵,獎項類型ID' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'AwardProduct', @level2type=N'COLUMN',@level2name=N'ProductAwardTypeId' GO EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'獎品名稱' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'AwardProduct', @level2type=N'COLUMN',@level2name=N'ProductName' GO EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'獎品編號' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'AwardProduct', @level2type=N'COLUMN',@level2name=N'ProductNo' GO EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'獎品數量' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'AwardProduct', @level2type=N'COLUMN',@level2name=N'ProductTotal' GO SELECT * FROM dbo.AwardProduct GO -- Prize picture table IF EXISTS (select * from sysobjects where id = object_id(N'dbo.AwardProductImage') and OBJECTPROPERTY(id, N'IsUserTable') = 1) DROP TABLE AwardProductImage GO CREATE TABLE AwardProductImage ( ProductImageId INT IDENTITY(1,1) PRIMARY KEY NOT NULL, ProductImageProductId INT FOREIGN KEY REFERENCES AwardProduct(ProductId), -- foreign key, product ID ProductImageByte IMAGE -- product image ) GO ---Table description IF NOT EXISTS (SELECT * FROM ::fn_listextendedproperty(N'MS_Description' , N'SCHEMA',N'dbo', N'TABLE',N'AwardProductImage', null,null)) EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'獎品圖片表' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'AwardProductImage', @level2type=NULL,@level2name=NULL GO --column description EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'圖片ID' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'AwardProductImage', @level2type=N'COLUMN',@level2name=N'ProductImageId' GO EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'外鍵,產品ID' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'AwardProductImage', @level2type=N'COLUMN',@level2name=N'ProductImageProductId' GO EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'產品圖片' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'AwardProductImage', @level2type=N'COLUMN',@level2name=N'ProductImageByte' GO SELECT * FROM dbo.AwardProductImage GO -- Winner List LuckyWinner --- Prize confirmation IF EXISTS (select * from sysobjects where id = object_id(N'dbo.LuckyWinner') and OBJECTPROPERTY(id, N'IsUserTable') = 1) DROP TABLE LuckyWinner GO CREATE TABLE LuckyWinner ( WinnerId INT IDENTITY(1,1) PRIMARY KEY NOT NULL, WinnerEmployeeId INT FOREIGN KEY REFERENCES Employee(EmployeeId), -- foreign key, employee ID WinnerAwardTypeId INT FOREIGN KEY REFERENCES AwardType(AwardTypeId), -- foreign key, award type ID WinnerIsOk BIT DEFAULT(0), --Whether to sign for confirmation WinnerSinger NVARCHAR(50) NULL, -- signer (or agent) WinnerDate datetime NULL --Confirm receipt date ) GO ---Table description IF NOT EXISTS (SELECT * FROM ::fn_listextendedproperty(N'MS_Description' , N'SCHEMA',N'dbo', N'TABLE',N'LuckyWinner', null,null)) EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'获奖者列表' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'LuckyWinner', @level2type=NULL,@level2name=NULL GO --column description EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'获奖者ID' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'LuckyWinner', @level2type=N'COLUMN',@level2name=N'WinnerId' GO EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'外鍵,員工ID' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'LuckyWinner', @level2type=N'COLUMN',@level2name=N'WinnerEmployeeId' GO EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'外鍵,獎項類型ID' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'LuckyWinner', @level2type=N'COLUMN',@level2name=N'WinnerAwardTypeId' GO EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'是否簽收确認' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'LuckyWinner', @level2type=N'COLUMN',@level2name=N'WinnerIsOk' GO EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'簽收人(或代理人)' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'LuckyWinner', @level2type=N'COLUMN',@level2name=N'WinnerSinger' GO EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'确認簽收日期' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'LuckyWinner', @level2type=N'COLUMN',@level2name=N'WinnerDate' GO SELECT * FROM dbo.LuckyWinner GO --WinnerSms for winners to send text messages, SKYPE information, etc. IF EXISTS (select * from sysobjects where id = object_id(N'dbo.WinnerSms') and OBJECTPROPERTY(id, N'IsUserTable') = 1) DROP TABLE WinnerSms GO CREATE TABLE WinnerSms ( SmsId INT IDENTITY(1,1) PRIMARY KEY NOT NULL, SmsEmployeeId INT FOREIGN KEY REFERENCES Employee(EmployeeId), -- foreign key, employee ID SmsContent NVARCHAR(2000) NOT NULL, -- SMS content SmsDate DATETIME DEFAULT(GETDATE()) --send time ) GO ---Table description IF NOT EXISTS (SELECT * FROM ::fn_listextendedproperty(N'MS_Description' , N'SCHEMA',N'dbo', N'TABLE',N'WinnerSms', null,null)) EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'Winner texting table' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE' ,@level1name=N'WinnerSms', @level2type=NULL,@level2name=NULL GO --column description EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'短信ID' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'WinnerSms', @level2type=N'COLUMN',@level2name=N'SmsId' GO EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'外鍵,員工ID' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'WinnerSms', @level2type=N'COLUMN',@level2name=N'SmsEmployeeId' GO EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'短信內容' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'WinnerSms', @level2type=N'COLUMN',@level2name=N'SmsContent' GO EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'發送時間' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'WinnerSms', @level2type=N'COLUMN',@level2name=N'SmsDate' GO SELECT * FROM dbo.WinnerSms GO --Window background image IF EXISTS (select * from sysobjects where id = object_id(N'dbo.FormBackground') and OBJECTPROPERTY(id, N'IsUserTable') = 1) DROP TABLE FormBackground GO CREATE TABLE FormBackground ( BackgroundId INT IDENTITY(1,1) PRIMARY KEY NOT NULL, BackgroundImage IMAGE, BackgroundFmName NVARCHAR(200) ) GO IF NOT EXISTS (SELECT * FROM ::fn_listextendedproperty(N'MS_Description' , N'SCHEMA',N'dbo', N'TABLE',N'FormBackground', null,null)) EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'窗口背景圖表' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'FormBackground', @level2type=NULL,@level2name=NULL GO --column description EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'ID' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'FormBackground', @level2type=N'COLUMN',@level2name=N'BackgroundId' GO EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'背景圖' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'FormBackground', @level2type=N'COLUMN',@level2name=N'BackgroundImage' GO EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'窗口名稱' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'FormBackground', @level2type=N'COLUMN',@level2name=N'BackgroundFmName' GO SELECT * FROM dbo.FormBackground