Académique Documents
Professionnel Documents
Culture Documents
varchar(5)
varchar(30)
varchar(30)
varchar(5)
varchar(3)
varchar(3)
not
not
not
not
not
not
null,
null,
null,
null,
null,
null,
ACCOUNT#
varchar(10)
DATE_HIRED
datetime
LAST_UPDATE
varchar(10)
default getdate() not null,
constraint PK_EMPLOYEE primary key (EMPLOYEE_ID)
not null,
,
)
go
-- ============================================================
-- Table : ITEM
-- ============================================================
create table ITEM
(
ITEM_ID
numeric(5)
ITEM_DESCRIPTION
varchar(30)
UNIT_PRICE
decimal(9,2)
CHECK (UNIT_PRICE > 0),
QTY_ON_HAND
decimal(11,0)
CONSTRAINT enough_stock
CHECK (QTY_ON_HAND > 0),
DESCRIPTION1
varchar(50)
DESCRIPTION2
varchar(50)
DESCRIPTION3
varchar(50)
TECHNICAL_INFO
text null,
ITEM_PICTURE
image,
ITEM_STATUS
varchar(02)
CONSTRAINT valid_item_status
CHECK (ITEM_STATUS IN ('ENA')),
LAST_UPDATE
varchar(10)
)
go
not null
-- ============================================================
-- Index : NDX_ITM
-- ============================================================
create unique index NDX_ITM on ITEM (ITEM_ID)
go
-- ============================================================
-- Index : NDX_ITM_STATUS
-- ============================================================
create index NDX_ITM_STATUS on ITEM (ITEM_STATUS)
go
-- ============================================================
-- Table : ITEM_HISTORY
-- ============================================================
create table ITEM_HISTORY
(
ITEM_ID
numeric(5)
not null,
OCCURRENCE_DATE
datetime
not null,
UNIT_PRICE
decimal(9,2)
not null,
constraint PK_ITM_HST primary key (ITEM_ID, OCCURRENCE_DATE)
)
go
-- ============================================================
-- Index : NDX_ITM_HST
-- ============================================================
create index NDX_ITM_HST on ITEM_HISTORY (OCCURRENCE_DATE, ITEM_ID)
go
-- ============================================================
-- Table : ORDER_ITEM
-- ============================================================
create table ORDER_ITEM
(
ORDER_NBR
ITEM_ID
QUANTITY
UNIT_PRICE
DISCOUNT
)
go
varchar(3)
numeric(5)
decimal(5)
decimal(9,2)
decimal(5,3)
not
not
not
not
not
null,
null,
null,
null,
null
-- ============================================================
-- Index : NDX_ORD_ITM
-- ============================================================
create unique index NDX_ORD_ITM on ORDER_ITEM (ORDER_NBR, ITEM_ID)
go
-- ============================================================
-- Table : ORDER_TBL
-- ============================================================
create table ORDER_TBL
(
ORDER_NBR
varchar(3)
INVOICE_NBR
varchar(3)
CUSTOMER_NBR
varchar(3)
ORDER_DATE
datetime
SALESMAN_ID
varchar(3)
COMPANY_NAME
varchar(25)
USER_ID
user_id,
constraint PK_ORD_TBL primary key (ORDER_NBR)
)
go
not null,
not null,
,
not null,
not null,
not null,
-- ============================================================
-- Index : NDX_CST1
-- ============================================================
create index NDX_CST1 on ORDER_TBL (CUSTOMER_NBR)
go
-- ============================================================
-- Index : NDX_CST2
-- ============================================================
create index NDX_CST2 on ORDER_TBL (CUSTOMER_NBR, ORDER_DATE, COMPANY_NAME)
go
-- ============================================================
-- Table : REGION
-- ============================================================
create table REGION
(
COUNTRY_ID
varchar(3)
DEFAULT 'USX' not null,
STATE_ID
varchar(2)
not null,
REGION_ID
varchar(4)
not null,
REGION_NAME
varchar(45)
not null,
constraint pk_region primary key (COUNTRY_ID, STATE_ID, REGION_ID),
constraint uk_region unique (REGION_NAME)
)
go
-- ============================================================
-- Table : SALESMAN
-- ========================================================
create table SALESMAN
(
SALESMAN_ID
varchar(3)
SALESMAN_NAME
varchar(30)
COUNTRY_ID
varchar(3)
ASSIGNED_STATE
varchar(2)
SALES_TARGET
Decimal(10,2)
EMPLOYEE_ID
varchar(5)
constraint UK_SALESMAN unique (SALESMAN_ID)
)
go
not
not
not
not
not
not
null,
null,
null,
null,
null,
null,
-- ============================================================
-- Index : NDX_SAL_TARGET
-- ============================================================
create index NDX_SAL_TARGET on SALESMAN (SALES_TARGET)
go
-- ============================================================
-- Table : STATE
-- ============================================================
create table STATE
(
COUNTRY_ID
varchar(3)
not null
CONSTRAINT valid_country_for_state
CHECK (COUNTRY_ID IN ('USA', 'CAN', 'MEX', 'UK ', 'ITA')),
STATE_ID
varchar(2)
not null,
STATE_NAME
varchar(30)
not null
)
go
-- ============================================================
-- Index : NDX_STATE1
-- ============================================================
create unique index NDX_STATE1 on STATE (COUNTRY_ID, STATE_ID)
go
-- ============================================================
-- Index : NDX_STATE2
-- ============================================================
create index NDX_STATE2 on STATE (COUNTRY_ID)
go
-- ============================================================
-- Table : VIP_CUSTOMER
-- ============================================================
create table VIP_CUSTOMER
(
VIP_CUSTOMER_NBR
ASSIGNED_SALESMAN
ADDITIONAL_CREDIT
)
go
varchar(3)
varchar(3)
decimal(9,2)
not null,
not null,
not null
-- ============================================================
-- Index : NDX_VIP_CST
-- ============================================================
create unique index NDX_VIP_CST on VIP_CUSTOMER (VIP_CUSTOMER_NBR)
go
-- ============================================================
-- Table : INVOICE
-- ============================================================
create table INVOICE
(
INVOICE_NBR
varchar(3)
ORDER_NBR
varchar(3)
INVOICE_DATE
datetime
constraint PK_INVOICE primary key (INVOICE_NBR)
)
go
not null,
not null,
not null,
-- ============================================================
-- Foreign Keys
-- ============================================================
alter table SALESMAN
add constraint FK_SALESMAN_COUNTRY foreign key (COUNTRY_ID, ASSIGNED_STATE)
references STATE (COUNTRY_ID, STATE_ID)
go
alter table REGION
add constraint FK_REGION_COUNTRY foreign key (COUNTRY_ID)
references COUNTRY (COUNTRY_ID)
go
alter table STATE
add constraint FK_STATE_COUNTRY foreign key (COUNTRY_ID)
references COUNTRY (COUNTRY_ID)
go
alter table EMPLOYEE
add constraint FK_EMPLOYEE_EMPLOYEE foreign key (MANAGER_ID)
references EMPLOYEE (EMPLOYEE_ID)
go