|
| 1 | +-- ============================================= |
| 2 | +-- Futon Manufacturing Database Schema |
| 3 | +-- ============================================= |
| 4 | +-- This database manages a futon manufacturing business with multi-level |
| 5 | +-- bill of materials, inventory, production, and sales tracking. |
| 6 | +-- ============================================= |
| 7 | + |
| 8 | +USE master; |
| 9 | +GO |
| 10 | + |
| 11 | +-- Drop database if exists |
| 12 | +IF EXISTS (SELECT name FROM sys.databases WHERE name = N'FutonManufacturing') |
| 13 | +BEGIN |
| 14 | + ALTER DATABASE FutonManufacturing SET SINGLE_USER WITH ROLLBACK IMMEDIATE; |
| 15 | + DROP DATABASE FutonManufacturing; |
| 16 | +END |
| 17 | +GO |
| 18 | + |
| 19 | +CREATE DATABASE FutonManufacturing; |
| 20 | +GO |
| 21 | + |
| 22 | +USE FutonManufacturing; |
| 23 | +GO |
| 24 | + |
| 25 | +-- ============================================= |
| 26 | +-- Reference Tables |
| 27 | +-- ============================================= |
| 28 | + |
| 29 | +-- Unit of Measure |
| 30 | +CREATE TABLE UnitOfMeasure ( |
| 31 | + UnitID INT IDENTITY(1,1) PRIMARY KEY, |
| 32 | + UnitCode NVARCHAR(10) NOT NULL UNIQUE, |
| 33 | + UnitName NVARCHAR(50) NOT NULL, |
| 34 | + Description NVARCHAR(255) |
| 35 | +); |
| 36 | + |
| 37 | +-- Item Types (Raw Material, Component, Finished Good) |
| 38 | +CREATE TABLE ItemType ( |
| 39 | + ItemTypeID INT IDENTITY(1,1) PRIMARY KEY, |
| 40 | + TypeCode NVARCHAR(20) NOT NULL UNIQUE, |
| 41 | + TypeName NVARCHAR(100) NOT NULL, |
| 42 | + Description NVARCHAR(255) |
| 43 | +); |
| 44 | + |
| 45 | +-- ============================================= |
| 46 | +-- Items Master Table |
| 47 | +-- ============================================= |
| 48 | + |
| 49 | +CREATE TABLE Items ( |
| 50 | + ItemID INT IDENTITY(1,1) PRIMARY KEY, |
| 51 | + ItemCode NVARCHAR(50) NOT NULL UNIQUE, |
| 52 | + ItemName NVARCHAR(255) NOT NULL, |
| 53 | + ItemTypeID INT NOT NULL, |
| 54 | + UnitID INT NOT NULL, |
| 55 | + Description NVARCHAR(MAX), |
| 56 | + StandardCost DECIMAL(18,4) NOT NULL DEFAULT 0, |
| 57 | + ListPrice DECIMAL(18,4) NOT NULL DEFAULT 0, |
| 58 | + IsActive BIT NOT NULL DEFAULT 1, |
| 59 | + LeadTimeDays INT DEFAULT 0, |
| 60 | + ReorderPoint DECIMAL(18,2) DEFAULT 0, |
| 61 | + SafetyStock DECIMAL(18,2) DEFAULT 0, |
| 62 | + CreatedDate DATETIME2 DEFAULT GETDATE(), |
| 63 | + ModifiedDate DATETIME2 DEFAULT GETDATE(), |
| 64 | + CONSTRAINT FK_Items_ItemType FOREIGN KEY (ItemTypeID) REFERENCES ItemType(ItemTypeID), |
| 65 | + CONSTRAINT FK_Items_UnitOfMeasure FOREIGN KEY (UnitID) REFERENCES UnitOfMeasure(UnitID) |
| 66 | +); |
| 67 | + |
| 68 | +-- ============================================= |
| 69 | +-- Bill of Materials (Multi-Level) |
| 70 | +-- ============================================= |
| 71 | + |
| 72 | +CREATE TABLE BillOfMaterials ( |
| 73 | + BOMID INT IDENTITY(1,1) PRIMARY KEY, |
| 74 | + ParentItemID INT NOT NULL, |
| 75 | + ComponentItemID INT NOT NULL, |
| 76 | + Quantity DECIMAL(18,4) NOT NULL, |
| 77 | + UnitID INT NOT NULL, |
| 78 | + ScrapRate DECIMAL(5,2) DEFAULT 0, -- Percentage |
| 79 | + EffectiveDate DATE DEFAULT CAST(GETDATE() AS DATE), |
| 80 | + EndDate DATE NULL, |
| 81 | + BOMLevel INT NOT NULL DEFAULT 0, -- 0 = top level, increases for sub-components |
| 82 | + IsActive BIT NOT NULL DEFAULT 1, |
| 83 | + Notes NVARCHAR(MAX), |
| 84 | + CreatedDate DATETIME2 DEFAULT GETDATE(), |
| 85 | + ModifiedDate DATETIME2 DEFAULT GETDATE(), |
| 86 | + CONSTRAINT FK_BOM_ParentItem FOREIGN KEY (ParentItemID) REFERENCES Items(ItemID), |
| 87 | + CONSTRAINT FK_BOM_ComponentItem FOREIGN KEY (ComponentItemID) REFERENCES Items(ItemID), |
| 88 | + CONSTRAINT FK_BOM_Unit FOREIGN KEY (UnitID) REFERENCES UnitOfMeasure(UnitID), |
| 89 | + CONSTRAINT CHK_BOM_NotSelf CHECK (ParentItemID <> ComponentItemID) |
| 90 | +); |
| 91 | + |
| 92 | +-- Index for BOM queries |
| 93 | +CREATE NONCLUSTERED INDEX IX_BOM_Parent ON BillOfMaterials(ParentItemID) INCLUDE (ComponentItemID, Quantity); |
| 94 | +CREATE NONCLUSTERED INDEX IX_BOM_Component ON BillOfMaterials(ComponentItemID); |
| 95 | + |
| 96 | +-- ============================================= |
| 97 | +-- Inventory Management |
| 98 | +-- ============================================= |
| 99 | + |
| 100 | +CREATE TABLE Warehouse ( |
| 101 | + WarehouseID INT IDENTITY(1,1) PRIMARY KEY, |
| 102 | + WarehouseCode NVARCHAR(20) NOT NULL UNIQUE, |
| 103 | + WarehouseName NVARCHAR(100) NOT NULL, |
| 104 | + Address NVARCHAR(255), |
| 105 | + City NVARCHAR(100), |
| 106 | + State NVARCHAR(50), |
| 107 | + ZipCode NVARCHAR(20), |
| 108 | + IsActive BIT NOT NULL DEFAULT 1 |
| 109 | +); |
| 110 | + |
| 111 | +CREATE TABLE Inventory ( |
| 112 | + InventoryID INT IDENTITY(1,1) PRIMARY KEY, |
| 113 | + ItemID INT NOT NULL, |
| 114 | + WarehouseID INT NOT NULL, |
| 115 | + QuantityOnHand DECIMAL(18,2) NOT NULL DEFAULT 0, |
| 116 | + QuantityAllocated DECIMAL(18,2) NOT NULL DEFAULT 0, |
| 117 | + QuantityAvailable AS (QuantityOnHand - QuantityAllocated) PERSISTED, |
| 118 | + LastCountDate DATETIME2, |
| 119 | + LastUpdated DATETIME2 DEFAULT GETDATE(), |
| 120 | + CONSTRAINT FK_Inventory_Item FOREIGN KEY (ItemID) REFERENCES Items(ItemID), |
| 121 | + CONSTRAINT FK_Inventory_Warehouse FOREIGN KEY (WarehouseID) REFERENCES Warehouse(WarehouseID), |
| 122 | + CONSTRAINT UQ_Inventory_Item_Warehouse UNIQUE (ItemID, WarehouseID) |
| 123 | +); |
| 124 | + |
| 125 | +CREATE TABLE TransactionType ( |
| 126 | + TransactionTypeID INT IDENTITY(1,1) PRIMARY KEY, |
| 127 | + TypeCode NVARCHAR(20) NOT NULL UNIQUE, |
| 128 | + TypeName NVARCHAR(100) NOT NULL, |
| 129 | + Description NVARCHAR(255) |
| 130 | +); |
| 131 | + |
| 132 | +CREATE TABLE InventoryTransaction ( |
| 133 | + TransactionID INT IDENTITY(1,1) PRIMARY KEY, |
| 134 | + ItemID INT NOT NULL, |
| 135 | + WarehouseID INT NOT NULL, |
| 136 | + TransactionTypeID INT NOT NULL, |
| 137 | + Quantity DECIMAL(18,2) NOT NULL, |
| 138 | + UnitCost DECIMAL(18,4), |
| 139 | + ReferenceNumber NVARCHAR(50), |
| 140 | + ReferenceType NVARCHAR(50), -- PO, SO, WO, ADJ, etc. |
| 141 | + Notes NVARCHAR(MAX), |
| 142 | + TransactionDate DATETIME2 DEFAULT GETDATE(), |
| 143 | + CreatedBy NVARCHAR(100), |
| 144 | + CONSTRAINT FK_InvTrans_Item FOREIGN KEY (ItemID) REFERENCES Items(ItemID), |
| 145 | + CONSTRAINT FK_InvTrans_Warehouse FOREIGN KEY (WarehouseID) REFERENCES Warehouse(WarehouseID), |
| 146 | + CONSTRAINT FK_InvTrans_Type FOREIGN KEY (TransactionTypeID) REFERENCES TransactionType(TransactionTypeID) |
| 147 | +); |
| 148 | + |
| 149 | +CREATE NONCLUSTERED INDEX IX_InvTrans_Date ON InventoryTransaction(TransactionDate DESC); |
| 150 | +CREATE NONCLUSTERED INDEX IX_InvTrans_Item ON InventoryTransaction(ItemID, TransactionDate); |
| 151 | + |
| 152 | +-- ============================================= |
| 153 | +-- Supplier Management |
| 154 | +-- ============================================= |
| 155 | + |
| 156 | +CREATE TABLE Supplier ( |
| 157 | + SupplierID INT IDENTITY(1,1) PRIMARY KEY, |
| 158 | + SupplierCode NVARCHAR(20) NOT NULL UNIQUE, |
| 159 | + SupplierName NVARCHAR(255) NOT NULL, |
| 160 | + ContactName NVARCHAR(100), |
| 161 | + Email NVARCHAR(100), |
| 162 | + Phone NVARCHAR(20), |
| 163 | + Address NVARCHAR(255), |
| 164 | + City NVARCHAR(100), |
| 165 | + State NVARCHAR(50), |
| 166 | + ZipCode NVARCHAR(20), |
| 167 | + Country NVARCHAR(50), |
| 168 | + PaymentTerms NVARCHAR(50), |
| 169 | + Rating DECIMAL(3,2), -- 0.00 to 5.00 |
| 170 | + IsActive BIT NOT NULL DEFAULT 1, |
| 171 | + CreatedDate DATETIME2 DEFAULT GETDATE() |
| 172 | +); |
| 173 | + |
| 174 | +CREATE TABLE SupplierItem ( |
| 175 | + SupplierItemID INT IDENTITY(1,1) PRIMARY KEY, |
| 176 | + SupplierID INT NOT NULL, |
| 177 | + ItemID INT NOT NULL, |
| 178 | + SupplierPartNumber NVARCHAR(50), |
| 179 | + UnitPrice DECIMAL(18,4) NOT NULL, |
| 180 | + MinimumOrderQuantity DECIMAL(18,2) DEFAULT 1, |
| 181 | + LeadTimeDays INT DEFAULT 0, |
| 182 | + IsPreferred BIT NOT NULL DEFAULT 0, |
| 183 | + EffectiveDate DATE DEFAULT CAST(GETDATE() AS DATE), |
| 184 | + EndDate DATE NULL, |
| 185 | + CONSTRAINT FK_SupplierItem_Supplier FOREIGN KEY (SupplierID) REFERENCES Supplier(SupplierID), |
| 186 | + CONSTRAINT FK_SupplierItem_Item FOREIGN KEY (ItemID) REFERENCES Items(ItemID) |
| 187 | +); |
| 188 | + |
| 189 | +CREATE TABLE PurchaseOrder ( |
| 190 | + PurchaseOrderID INT IDENTITY(1,1) PRIMARY KEY, |
| 191 | + PONumber NVARCHAR(50) NOT NULL UNIQUE, |
| 192 | + SupplierID INT NOT NULL, |
| 193 | + WarehouseID INT NOT NULL, |
| 194 | + OrderDate DATE NOT NULL DEFAULT CAST(GETDATE() AS DATE), |
| 195 | + ExpectedDeliveryDate DATE, |
| 196 | + ActualDeliveryDate DATE, |
| 197 | + Status NVARCHAR(20) NOT NULL DEFAULT 'Draft', -- Draft, Submitted, Confirmed, Shipped, Received, Cancelled |
| 198 | + Subtotal DECIMAL(18,2) DEFAULT 0, |
| 199 | + TaxAmount DECIMAL(18,2) DEFAULT 0, |
| 200 | + ShippingAmount DECIMAL(18,2) DEFAULT 0, |
| 201 | + TotalAmount DECIMAL(18,2) DEFAULT 0, |
| 202 | + Notes NVARCHAR(MAX), |
| 203 | + CreatedBy NVARCHAR(100), |
| 204 | + CreatedDate DATETIME2 DEFAULT GETDATE(), |
| 205 | + ModifiedDate DATETIME2 DEFAULT GETDATE(), |
| 206 | + CONSTRAINT FK_PO_Supplier FOREIGN KEY (SupplierID) REFERENCES Supplier(SupplierID), |
| 207 | + CONSTRAINT FK_PO_Warehouse FOREIGN KEY (WarehouseID) REFERENCES Warehouse(WarehouseID) |
| 208 | +); |
| 209 | + |
| 210 | +CREATE TABLE PurchaseOrderDetail ( |
| 211 | + PODetailID INT IDENTITY(1,1) PRIMARY KEY, |
| 212 | + PurchaseOrderID INT NOT NULL, |
| 213 | + LineNumber INT NOT NULL, |
| 214 | + ItemID INT NOT NULL, |
| 215 | + Quantity DECIMAL(18,2) NOT NULL, |
| 216 | + UnitPrice DECIMAL(18,4) NOT NULL, |
| 217 | + QuantityReceived DECIMAL(18,2) DEFAULT 0, |
| 218 | + LineTotal AS (Quantity * UnitPrice) PERSISTED, |
| 219 | + CONSTRAINT FK_PODetail_PO FOREIGN KEY (PurchaseOrderID) REFERENCES PurchaseOrder(PurchaseOrderID), |
| 220 | + CONSTRAINT FK_PODetail_Item FOREIGN KEY (ItemID) REFERENCES Items(ItemID) |
| 221 | +); |
| 222 | + |
| 223 | +-- ============================================= |
| 224 | +-- Production Management |
| 225 | +-- ============================================= |
| 226 | + |
| 227 | +CREATE TABLE WorkCenter ( |
| 228 | + WorkCenterID INT IDENTITY(1,1) PRIMARY KEY, |
| 229 | + WorkCenterCode NVARCHAR(20) NOT NULL UNIQUE, |
| 230 | + WorkCenterName NVARCHAR(100) NOT NULL, |
| 231 | + Description NVARCHAR(255), |
| 232 | + Capacity DECIMAL(18,2), -- Units per day |
| 233 | + IsActive BIT NOT NULL DEFAULT 1 |
| 234 | +); |
| 235 | + |
| 236 | +CREATE TABLE ProductionOrder ( |
| 237 | + ProductionOrderID INT IDENTITY(1,1) PRIMARY KEY, |
| 238 | + WorkOrderNumber NVARCHAR(50) NOT NULL UNIQUE, |
| 239 | + ItemID INT NOT NULL, -- What we're producing |
| 240 | + WarehouseID INT NOT NULL, |
| 241 | + WorkCenterID INT, |
| 242 | + OrderQuantity DECIMAL(18,2) NOT NULL, |
| 243 | + QuantityCompleted DECIMAL(18,2) DEFAULT 0, |
| 244 | + QuantityScrapped DECIMAL(18,2) DEFAULT 0, |
| 245 | + StartDate DATE, |
| 246 | + PlannedCompletionDate DATE, |
| 247 | + ActualCompletionDate DATE, |
| 248 | + Status NVARCHAR(20) NOT NULL DEFAULT 'Planned', -- Planned, Released, InProgress, Completed, Cancelled |
| 249 | + Priority INT DEFAULT 5, -- 1 = Highest, 10 = Lowest |
| 250 | + Notes NVARCHAR(MAX), |
| 251 | + CreatedBy NVARCHAR(100), |
| 252 | + CreatedDate DATETIME2 DEFAULT GETDATE(), |
| 253 | + ModifiedDate DATETIME2 DEFAULT GETDATE(), |
| 254 | + CONSTRAINT FK_ProdOrder_Item FOREIGN KEY (ItemID) REFERENCES Items(ItemID), |
| 255 | + CONSTRAINT FK_ProdOrder_Warehouse FOREIGN KEY (WarehouseID) REFERENCES Warehouse(WarehouseID), |
| 256 | + CONSTRAINT FK_ProdOrder_WorkCenter FOREIGN KEY (WorkCenterID) REFERENCES WorkCenter(WorkCenterID) |
| 257 | +); |
| 258 | + |
| 259 | +CREATE TABLE ProductionOrderMaterial ( |
| 260 | + ProdOrderMaterialID INT IDENTITY(1,1) PRIMARY KEY, |
| 261 | + ProductionOrderID INT NOT NULL, |
| 262 | + ItemID INT NOT NULL, |
| 263 | + RequiredQuantity DECIMAL(18,2) NOT NULL, |
| 264 | + IssuedQuantity DECIMAL(18,2) DEFAULT 0, |
| 265 | + CONSTRAINT FK_ProdMaterial_ProdOrder FOREIGN KEY (ProductionOrderID) REFERENCES ProductionOrder(ProductionOrderID), |
| 266 | + CONSTRAINT FK_ProdMaterial_Item FOREIGN KEY (ItemID) REFERENCES Items(ItemID) |
| 267 | +); |
| 268 | + |
| 269 | +CREATE TABLE ProductionCompletion ( |
| 270 | + CompletionID INT IDENTITY(1,1) PRIMARY KEY, |
| 271 | + ProductionOrderID INT NOT NULL, |
| 272 | + QuantityCompleted DECIMAL(18,2) NOT NULL, |
| 273 | + QuantityScrapped DECIMAL(18,2) DEFAULT 0, |
| 274 | + CompletionDate DATETIME2 DEFAULT GETDATE(), |
| 275 | + WorkCenterID INT, |
| 276 | + Notes NVARCHAR(MAX), |
| 277 | + CompletedBy NVARCHAR(100), |
| 278 | + CONSTRAINT FK_Completion_ProdOrder FOREIGN KEY (ProductionOrderID) REFERENCES ProductionOrder(ProductionOrderID), |
| 279 | + CONSTRAINT FK_Completion_WorkCenter FOREIGN KEY (WorkCenterID) REFERENCES WorkCenter(WorkCenterID) |
| 280 | +); |
| 281 | + |
| 282 | +-- ============================================= |
| 283 | +-- Quality Control |
| 284 | +-- ============================================= |
| 285 | + |
| 286 | +CREATE TABLE QualityInspection ( |
| 287 | + InspectionID INT IDENTITY(1,1) PRIMARY KEY, |
| 288 | + ItemID INT NOT NULL, |
| 289 | + InspectionType NVARCHAR(50) NOT NULL, -- Incoming, In-Process, Final |
| 290 | + ReferenceType NVARCHAR(50), -- PO, WO, etc. |
| 291 | + ReferenceNumber NVARCHAR(50), |
| 292 | + QuantityInspected DECIMAL(18,2) NOT NULL, |
| 293 | + QuantityAccepted DECIMAL(18,2) NOT NULL, |
| 294 | + QuantityRejected DECIMAL(18,2) NOT NULL, |
| 295 | + InspectionDate DATETIME2 DEFAULT GETDATE(), |
| 296 | + InspectedBy NVARCHAR(100), |
| 297 | + Notes NVARCHAR(MAX), |
| 298 | + CONSTRAINT FK_Quality_Item FOREIGN KEY (ItemID) REFERENCES Items(ItemID) |
| 299 | +); |
| 300 | + |
| 301 | +-- ============================================= |
| 302 | +-- Customer and Sales Management |
| 303 | +-- ============================================= |
| 304 | + |
| 305 | +CREATE TABLE Customer ( |
| 306 | + CustomerID INT IDENTITY(1,1) PRIMARY KEY, |
| 307 | + CustomerCode NVARCHAR(20) NOT NULL UNIQUE, |
| 308 | + CustomerName NVARCHAR(255) NOT NULL, |
| 309 | + ContactName NVARCHAR(100), |
| 310 | + Email NVARCHAR(100), |
| 311 | + Phone NVARCHAR(20), |
| 312 | + Address NVARCHAR(255), |
| 313 | + City NVARCHAR(100), |
| 314 | + State NVARCHAR(50), |
| 315 | + ZipCode NVARCHAR(20), |
| 316 | + Country NVARCHAR(50), |
| 317 | + CreditLimit DECIMAL(18,2), |
| 318 | + IsActive BIT NOT NULL DEFAULT 1, |
| 319 | + CreatedDate DATETIME2 DEFAULT GETDATE() |
| 320 | +); |
| 321 | + |
| 322 | +CREATE TABLE SalesOrder ( |
| 323 | + SalesOrderID INT IDENTITY(1,1) PRIMARY KEY, |
| 324 | + OrderNumber NVARCHAR(50) NOT NULL UNIQUE, |
| 325 | + CustomerID INT NOT NULL, |
| 326 | + WarehouseID INT NOT NULL, |
| 327 | + OrderDate DATE NOT NULL DEFAULT CAST(GETDATE() AS DATE), |
| 328 | + RequestedDeliveryDate DATE, |
| 329 | + ShipDate DATE, |
| 330 | + Status NVARCHAR(20) NOT NULL DEFAULT 'Draft', -- Draft, Confirmed, InProduction, Shipped, Delivered, Cancelled |
| 331 | + Subtotal DECIMAL(18,2) DEFAULT 0, |
| 332 | + TaxAmount DECIMAL(18,2) DEFAULT 0, |
| 333 | + ShippingAmount DECIMAL(18,2) DEFAULT 0, |
| 334 | + TotalAmount DECIMAL(18,2) DEFAULT 0, |
| 335 | + Notes NVARCHAR(MAX), |
| 336 | + CreatedBy NVARCHAR(100), |
| 337 | + CreatedDate DATETIME2 DEFAULT GETDATE(), |
| 338 | + ModifiedDate DATETIME2 DEFAULT GETDATE(), |
| 339 | + CONSTRAINT FK_SO_Customer FOREIGN KEY (CustomerID) REFERENCES Customer(CustomerID), |
| 340 | + CONSTRAINT FK_SO_Warehouse FOREIGN KEY (WarehouseID) REFERENCES Warehouse(WarehouseID) |
| 341 | +); |
| 342 | + |
| 343 | +CREATE TABLE SalesOrderDetail ( |
| 344 | + SODetailID INT IDENTITY(1,1) PRIMARY KEY, |
| 345 | + SalesOrderID INT NOT NULL, |
| 346 | + LineNumber INT NOT NULL, |
| 347 | + ItemID INT NOT NULL, |
| 348 | + Quantity DECIMAL(18,2) NOT NULL, |
| 349 | + UnitPrice DECIMAL(18,4) NOT NULL, |
| 350 | + QuantityShipped DECIMAL(18,2) DEFAULT 0, |
| 351 | + LineTotal AS (Quantity * UnitPrice) PERSISTED, |
| 352 | + CONSTRAINT FK_SODetail_SO FOREIGN KEY (SalesOrderID) REFERENCES SalesOrder(SalesOrderID), |
| 353 | + CONSTRAINT FK_SODetail_Item FOREIGN KEY (ItemID) REFERENCES Items(ItemID) |
| 354 | +); |
| 355 | + |
| 356 | +-- ============================================= |
| 357 | +-- Indexes for Performance |
| 358 | +-- ============================================= |
| 359 | + |
| 360 | +CREATE NONCLUSTERED INDEX IX_Items_Type ON Items(ItemTypeID) INCLUDE (ItemCode, ItemName); |
| 361 | +CREATE NONCLUSTERED INDEX IX_Items_Active ON Items(IsActive) WHERE IsActive = 1; |
| 362 | +CREATE NONCLUSTERED INDEX IX_PO_Status ON PurchaseOrder(Status, OrderDate); |
| 363 | +CREATE NONCLUSTERED INDEX IX_SO_Status ON SalesOrder(Status, OrderDate); |
| 364 | +CREATE NONCLUSTERED INDEX IX_ProdOrder_Status ON ProductionOrder(Status, PlannedCompletionDate); |
| 365 | + |
| 366 | +GO |
| 367 | + |
| 368 | +PRINT 'Futon Manufacturing Database Schema created successfully!'; |
| 369 | +GO |
0 commit comments