UDB.sql: User Database Schema


CREATE TABLE Users
(
	ID SMALLINT NOT NULL,
	UserName VARCHAR(15) NOT NULL,
	RealName VARCHAR(40) NULL,
	PhoneNumber VARCHAR(15) NULL,
	BillingPlan TINYINT NULL,
	AccountBalance  SMALLMONEY NOT NULL DEFAULT(0.00),
	Hours SMALLINT NULL DEFAULT(0),

	CONSTRAINT PK_ID_Users PRIMARY KEY CLUSTERED (ID),
	CONSTRAINT UQ_UserName_Users UNIQUE NONCLUSTERED (UserName),
	CONSTRAINT FK_BillingPlan_Users FOREIGN KEY (BillingPlan)
		REFERENCES BillingPlans(ID)
)

CREATE TABLE BillingPlans
(
	ID TINYINT NOT NULL,
	Name VARCHAR(20) NULL,
	BaseRate SMALLMONEY NOT NULL DEFAULT(0.00),
	BaseHours TINYINT NOT NULL DEFAULT(0),
	HourlyRate SMALLMONEY NOT NULL DEFAULT(0.00),

	CONSTRAINT PK_ID_BillingPlans PRIMARY KEY CLUSTERED (ID)
)

CREATE TABLE History
(
	ID NUMERIC(10,0) IDENTITY,
	UID SMALLINT NOT NULL,
	Date DATETIME NOT NULL,
	Transaction VARCHAR(40) NOT NULL,
	Amount SMALLMONEY NOT NULL,

	CONSTRAINT PK_ID_History PRIMARY KEY CLUSTERED (ID),
	CONSTRAINT FK_UID_History FOREIGN KEY (UID)
		REFERENCES Users(ID)
)