Files
sql-server-samples/samples/features/sql-graph/create_graph_tables.sql
T
Estienne Granet 0ff1ae74a4 Adding graph examples (#258)
* Adding graph examples

* Updating README.md
2017-07-14 13:11:16 -07:00

334 lines
8.9 KiB
Transact-SQL

-- clean database
DROP TABLE IF EXISTS Graph.Customers;
DROP TABLE IF EXISTS Graph.StockItems;
DROP TABLE IF EXISTS Graph.Suppliers;
DROP TABLE IF EXISTS Graph.OrderLines_CustomersToStockItems;
DROP TABLE IF EXISTS Graph.OrderLines_StockItemsToCustomers;
DROP TABLE IF EXISTS Graph.InvoiceLines_CustomersToStockItems;
DROP TABLE IF EXISTS Graph.InvoiceLines_StockItemsToCustomers;
DROP TABLE IF EXISTS Graph.PurchaseOrderLines_SuppliersToStockItems;
DROP TABLE IF EXISTS Graph.PurchaseOrderLines_StockItemsToSuppliers;
DROP SCHEMA IF EXISTS Graph;
go
-- define schema
CREATE SCHEMA Graph;
go
/* SALES schema */
-- create node table for Sales.Customers
CREATE TABLE Graph.Customers (
CustomerID int,
CustomerName nvarchar(100),
BillToCustomerID int,
CustomerCategoryID int,
BuyingGroupID int,
PrimaryContactPersonID int,
AlternateContactPersonID int,
DeliveryMethodID int,
DeliveryCityID int,
PostalCityID int,
CreditLimit decimal(18,2),
AccountOpenedDate date,
StandardDiscountPercentage decimal(18,3),
IsStatementSent bit,
IsOnCreditHold bit,
PaymentDays int,
PhoneNumber nvarchar(20),
WebsiteURL nvarchar(256),
DeliveryAddressLine1 nvarchar(60),
DeliveryAddressLine2 nvarchar(60),
DeliveryPostalCode nvarchar(10),
DeliveryLocation geography,
PostalAddressLine1 nvarchar(60),
PostalAddressLine2 nvarchar(60),
PostalPostalCode nvarchar(10),
LastEditedBy int,
ValidFrom datetime2,
ValidTo datetime2
) AS NODE;
-- create edge table for Sales.Orders and Sales.Orderlines
-- LINK: CUSTOMERS -->> STOCKITEMS
CREATE TABLE Graph.OrderLines_CustomersToStockItems (
-- from Sales.Orders
OrderID int,
CustomerID int,
SalespersonPersonID int,
PickedByPersonID int,
ContactPersonID int,
BackorderOrderID int,
OrderDate date,
ExpectedDeliveryDate date,
CustomerPurchaseOrderNumber nvarchar(20),
IsUndersupplyBackordered bit,
Comments nvarchar(max),
DeliveryInstructions nvarchar(max),
InternalComments nvarchar(max),
-- from Sales.OrderLines
StockItemID int,
Description nvarchar(100),
PackageTypeID int,
Quantity int,
UnitPrice decimal(18,2),
TaxRate decimal(18,3),
PickedQuantity int,
PickingCompletedWhen datetime2,
LastEditedBy int,
LastEditedWhen datetime2
) AS EDGE;
-- create edge table for Sales.Invoices and Sales.InvoiceLines
-- LINK: CUSTOMERS -->> STOCKITEMS
CREATE TABLE Graph.InvoiceLines_CustomersToStockItems (
-- from Sales.Invoices
InvoiceID int,
CustomerID int,
BillToCustomerID int,
OrderID int,
DeliveryMethodID int,
ContactPersonID int,
AccountsPersonID int,
SalespersonPersonID int,
PackedByPersonID int,
InvoiceDate date,
CustomerPurchaseOrderNumber nvarchar(20),
IsCreditNote bit,
CreditNoteReason nvarchar(max),
Comments nvarchar(max),
DeliveryInstructions nvarchar(max),
InternalComments nvarchar(max),
TotalDryItems int,
TotalChillerItems int,
DeliveryRun nvarchar(5),
RunPosition nvarchar(5),
ReturnedDeliveryData nvarchar(max),
ConfirmedDeliveryTime datetime2,
ConfirmedReceivedBy nvarchar(4000),
-- from Sales.InvoiceLines
InvoiceLineID int,
StockItemID int,
Description nvarchar(100),
PackageTypeID int,
Quantity int,
UnitPrice decimal(18,3),
TaxRate decimal(18,2),
TaxAmount decimal(18,2),
LineProfit decimal(18,2),
ExtendedPrice decimal(18,2),
LastEditedBy int,
LastEditedWhen datetime2
) AS EDGE;
-- create edge table for Sales.Orders and Sales.Orderlines
-- LINK: STOCKITEMS -->> CUSTOMERS
CREATE TABLE Graph.OrderLines_StockItemsToCustomers (
-- from Sales.Orders
OrderID int,
CustomerID int,
SalespersonPersonID int,
PickedByPersonID int,
ContactPersonID int,
BackorderOrderID int,
OrderDate date,
ExpectedDeliveryDate date,
CustomerPurchaseOrderNumber nvarchar(20),
IsUndersupplyBackordered bit,
Comments nvarchar(max),
DeliveryInstructions nvarchar(max),
InternalComments nvarchar(max),
-- from Sales.OrderLines
StockItemID int,
Description nvarchar(100),
PackageTypeID int,
Quantity int,
UnitPrice decimal(18,2),
TaxRate decimal(18,3),
PickedQuantity int,
PickingCompletedWhen datetime2,
LastEditedBy int,
LastEditedWhen datetime2
) AS EDGE;
-- create edge table for Sales.Invoices and Sales.InvoiceLines
-- LINK: STOCKITEMS -->> CUSTOMERS
CREATE TABLE Graph.InvoiceLines_StockItemsToCustomers (
-- from Sales.Invoices
InvoiceID int,
CustomerID int,
BillToCustomerID int,
OrderID int,
DeliveryMethodID int,
ContactPersonID int,
AccountsPersonID int,
SalespersonPersonID int,
PackedByPersonID int,
InvoiceDate date,
CustomerPurchaseOrderNumber nvarchar(20),
IsCreditNote bit,
CreditNoteReason nvarchar(max),
Comments nvarchar(max),
DeliveryInstructions nvarchar(max),
InternalComments nvarchar(max),
TotalDryItems int,
TotalChillerItems int,
DeliveryRun nvarchar(5),
RunPosition nvarchar(5),
ReturnedDeliveryData nvarchar(max),
ConfirmedDeliveryTime datetime2,
ConfirmedReceivedBy nvarchar(4000),
-- from Sales.InvoiceLines
InvoiceLineID int,
StockItemID int,
Description nvarchar(100),
PackageTypeID int,
Quantity int,
UnitPrice decimal(18,3),
TaxRate decimal(18,2),
TaxAmount decimal(18,2),
LineProfit decimal(18,2),
ExtendedPrice decimal(18,2),
LastEditedBy int,
LastEditedWhen datetime2
) AS EDGE;
/* WAREHOUSE schema */
-- create node table for Warehouse.StockItems
CREATE TABLE Graph.StockItems (
StockItemID int,
StockItemName nvarchar(100),
SupplierID int,
ColorID int,
UnitPackageID int,
OuterPackageID int,
Brand nvarchar(50),
Size nvarchar(20),
LeadTimeDays int,
QuantityPerOuter int,
IsChillerStock bit,
Barcode nvarchar(50),
TaxRate decimal(18,3),
UnitPrice decimal(18,2),
RecommendedRetailPrice decimal(18,2),
TypicalWeightPerUnit decimal(5,2),
MarketingComments nvarchar(max),
InternalComments nvarchar(max),
Photo varbinary(max),
CustomFields nvarchar(max),
Tags nvarchar(max),
SearchDetails nvarchar(max),
LastEditedBy int,
ValidFrom datetime2,
ValidTo datetime2
) AS NODE;
/* PURCHASING schema */
-- create node table for Purchasing.Suppliers
CREATE TABLE Graph.Suppliers (
SupplierID int,
SupplierName nvarchar(100),
SupplierCategoryID int,
PrimaryContactPersonID int,
AlternateContactPersonID int,
DeliveryMethodID int,
DeliveryCityID int,
PostalCityID int,
SupplierReference nvarchar(20),
BankAccountName nvarchar(50),
BankAccountBranch nvarchar(50),
BankAccountCode nvarchar(20),
BankAccountNumber nvarchar(20),
BankInternationalCode nvarchar(20),
PaymentDays int,
InternalComments nvarchar(max),
PhoneNumber nvarchar(20),
FaxNumber nvarchar(20),
WebsiteURL nvarchar(256),
DeliveryAddressLine1 nvarchar(60),
DeliveryAddressLine2 nvarchar(60),
DeliveryPostalCode nvarchar(10),
DeliveryLocation geography,
PostalAddressLine1 nvarchar(60),
PostalAddressLine2 nvarchar(60),
PostalPostalCode nvarchar(10),
LastEditedBy int,
ValidFrom datetime2,
ValidTo datetime2
) AS NODE
-- create edge table for Purchasing.PurchaseOrders and Purchasing.PurchaseOrderLines
-- LINK: SUPPLIERS -->> STOCKITEMS
CREATE TABLE Graph.PurchaseOrderLines_SuppliersToStockItems (
-- from Purchasing.PurchaseOrders
PurchaseOrderID int,
SupplierID int,
OrderDate date,
DeliveryMethodID int,
ContactPersonID int,
ExpectedDeliveryDate date,
SupplierReference nvarchar(20),
IsOrderFinalized bit,
Comments nvarchar(max),
InternalComments nvarchar(max),
-- from Purchasing.PurchaseOrderLines
PurchaseOrderLineID int,
StockItemID int,
OrderedOuters int,
Description nvarchar(100),
ReceivedOuters int,
PackageTypeID int,
ExpectedUnitPricePerOuter decimal(18,2),
LastReceiptDate date,
IsOrderLineFinalized bit,
LastEditedBy int,
LastEditedWhen datetime2
) AS EDGE;
-- create edge table for Purchasing.PurchaseOrders and Purchasing.PurchaseOrderLines
-- LINK: STOCKITEMS -->> SUPPLIERS
CREATE TABLE Graph.PurchaseOrderLines_StockItemsToSuppliers (
-- from Purchasing.PurchaseOrders
PurchaseOrderID int,
SupplierID int,
OrderDate date,
DeliveryMethodID int,
ContactPersonID int,
ExpectedDeliveryDate date,
SupplierReference nvarchar(20),
IsOrderFinalized bit,
Comments nvarchar(max),
InternalComments nvarchar(max),
-- from Purchasing.PurchaseOrderLines
PurchaseOrderLineID int,
StockItemID int,
OrderedOuters int,
Description nvarchar(100),
ReceivedOuters int,
PackageTypeID int,
ExpectedUnitPricePerOuter decimal(18,2),
LastReceiptDate date,
IsOrderLineFinalized bit,
LastEditedBy int,
LastEditedWhen datetime2
) AS EDGE;
go