1.sql 32 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392
  1. USE [master]
  2. GO
  3. /****** Object: Database [ToyWorldDb] Script Date: 07.06.2026 2:11:35 ******/
  4. CREATE DATABASE [ToyWorldDb]
  5. CONTAINMENT = NONE
  6. ON PRIMARY
  7. ( NAME = N'ToyWorldDb', FILENAME = N'C:\Program Files\Microsoft SQL Server\MSSQL16.MSSQLSERVER\MSSQL\DATA\ToyWorldDb.mdf' , SIZE = 8192KB , MAXSIZE = UNLIMITED, FILEGROWTH = 65536KB )
  8. LOG ON
  9. ( NAME = N'ToyWorldDb_log', FILENAME = N'C:\Program Files\Microsoft SQL Server\MSSQL16.MSSQLSERVER\MSSQL\DATA\ToyWorldDb_log.ldf' , SIZE = 8192KB , MAXSIZE = 2048GB , FILEGROWTH = 65536KB )
  10. WITH CATALOG_COLLATION = DATABASE_DEFAULT, LEDGER = OFF
  11. GO
  12. ALTER DATABASE [ToyWorldDb] SET COMPATIBILITY_LEVEL = 160
  13. GO
  14. IF (1 = FULLTEXTSERVICEPROPERTY('IsFullTextInstalled'))
  15. begin
  16. EXEC [ToyWorldDb].[dbo].[sp_fulltext_database] @action = 'enable'
  17. end
  18. GO
  19. ALTER DATABASE [ToyWorldDb] SET ANSI_NULL_DEFAULT OFF
  20. GO
  21. ALTER DATABASE [ToyWorldDb] SET ANSI_NULLS OFF
  22. GO
  23. ALTER DATABASE [ToyWorldDb] SET ANSI_PADDING OFF
  24. GO
  25. ALTER DATABASE [ToyWorldDb] SET ANSI_WARNINGS OFF
  26. GO
  27. ALTER DATABASE [ToyWorldDb] SET ARITHABORT OFF
  28. GO
  29. ALTER DATABASE [ToyWorldDb] SET AUTO_CLOSE OFF
  30. GO
  31. ALTER DATABASE [ToyWorldDb] SET AUTO_SHRINK OFF
  32. GO
  33. ALTER DATABASE [ToyWorldDb] SET AUTO_UPDATE_STATISTICS ON
  34. GO
  35. ALTER DATABASE [ToyWorldDb] SET CURSOR_CLOSE_ON_COMMIT OFF
  36. GO
  37. ALTER DATABASE [ToyWorldDb] SET CURSOR_DEFAULT GLOBAL
  38. GO
  39. ALTER DATABASE [ToyWorldDb] SET CONCAT_NULL_YIELDS_NULL OFF
  40. GO
  41. ALTER DATABASE [ToyWorldDb] SET NUMERIC_ROUNDABORT OFF
  42. GO
  43. ALTER DATABASE [ToyWorldDb] SET QUOTED_IDENTIFIER OFF
  44. GO
  45. ALTER DATABASE [ToyWorldDb] SET RECURSIVE_TRIGGERS OFF
  46. GO
  47. ALTER DATABASE [ToyWorldDb] SET ENABLE_BROKER
  48. GO
  49. ALTER DATABASE [ToyWorldDb] SET AUTO_UPDATE_STATISTICS_ASYNC OFF
  50. GO
  51. ALTER DATABASE [ToyWorldDb] SET DATE_CORRELATION_OPTIMIZATION OFF
  52. GO
  53. ALTER DATABASE [ToyWorldDb] SET TRUSTWORTHY OFF
  54. GO
  55. ALTER DATABASE [ToyWorldDb] SET ALLOW_SNAPSHOT_ISOLATION OFF
  56. GO
  57. ALTER DATABASE [ToyWorldDb] SET PARAMETERIZATION SIMPLE
  58. GO
  59. ALTER DATABASE [ToyWorldDb] SET READ_COMMITTED_SNAPSHOT OFF
  60. GO
  61. ALTER DATABASE [ToyWorldDb] SET HONOR_BROKER_PRIORITY OFF
  62. GO
  63. ALTER DATABASE [ToyWorldDb] SET RECOVERY FULL
  64. GO
  65. ALTER DATABASE [ToyWorldDb] SET MULTI_USER
  66. GO
  67. ALTER DATABASE [ToyWorldDb] SET PAGE_VERIFY CHECKSUM
  68. GO
  69. ALTER DATABASE [ToyWorldDb] SET DB_CHAINING OFF
  70. GO
  71. ALTER DATABASE [ToyWorldDb] SET FILESTREAM( NON_TRANSACTED_ACCESS = OFF )
  72. GO
  73. ALTER DATABASE [ToyWorldDb] SET TARGET_RECOVERY_TIME = 60 SECONDS
  74. GO
  75. ALTER DATABASE [ToyWorldDb] SET DELAYED_DURABILITY = DISABLED
  76. GO
  77. ALTER DATABASE [ToyWorldDb] SET ACCELERATED_DATABASE_RECOVERY = OFF
  78. GO
  79. EXEC sys.sp_db_vardecimal_storage_format N'ToyWorldDb', N'ON'
  80. GO
  81. ALTER DATABASE [ToyWorldDb] SET QUERY_STORE = ON
  82. GO
  83. ALTER DATABASE [ToyWorldDb] SET QUERY_STORE (OPERATION_MODE = READ_WRITE, CLEANUP_POLICY = (STALE_QUERY_THRESHOLD_DAYS = 30), DATA_FLUSH_INTERVAL_SECONDS = 900, INTERVAL_LENGTH_MINUTES = 60, MAX_STORAGE_SIZE_MB = 1000, QUERY_CAPTURE_MODE = AUTO, SIZE_BASED_CLEANUP_MODE = AUTO, MAX_PLANS_PER_QUERY = 200, WAIT_STATS_CAPTURE_MODE = ON)
  84. GO
  85. USE [ToyWorldDb]
  86. GO
  87. /****** Object: Table [dbo].[Unit] Script Date: 07.06.2026 2:11:35 ******/
  88. SET ANSI_NULLS ON
  89. GO
  90. SET QUOTED_IDENTIFIER ON
  91. GO
  92. CREATE TABLE [dbo].[Unit](
  93. [UnitId] [int] IDENTITY(1,1) NOT NULL,
  94. [UnitName] [nvarchar](20) NOT NULL,
  95. CONSTRAINT [PK_Unit] PRIMARY KEY CLUSTERED
  96. (
  97. [UnitId] ASC
  98. )WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON, OPTIMIZE_FOR_SEQUENTIAL_KEY = OFF) ON [PRIMARY],
  99. CONSTRAINT [UQ_Unit] UNIQUE NONCLUSTERED
  100. (
  101. [UnitName] ASC
  102. )WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON, OPTIMIZE_FOR_SEQUENTIAL_KEY = OFF) ON [PRIMARY]
  103. ) ON [PRIMARY]
  104. GO
  105. /****** Object: Table [dbo].[Supplier] Script Date: 07.06.2026 2:11:36 ******/
  106. SET ANSI_NULLS ON
  107. GO
  108. SET QUOTED_IDENTIFIER ON
  109. GO
  110. CREATE TABLE [dbo].[Supplier](
  111. [SupplierId] [int] IDENTITY(1,1) NOT NULL,
  112. [SupplierName] [nvarchar](100) NOT NULL,
  113. CONSTRAINT [PK_Supplier] PRIMARY KEY CLUSTERED
  114. (
  115. [SupplierId] ASC
  116. )WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON, OPTIMIZE_FOR_SEQUENTIAL_KEY = OFF) ON [PRIMARY],
  117. CONSTRAINT [UQ_Supplier] UNIQUE NONCLUSTERED
  118. (
  119. [SupplierName] ASC
  120. )WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON, OPTIMIZE_FOR_SEQUENTIAL_KEY = OFF) ON [PRIMARY]
  121. ) ON [PRIMARY]
  122. GO
  123. /****** Object: Table [dbo].[Manufacturer] Script Date: 07.06.2026 2:11:36 ******/
  124. SET ANSI_NULLS ON
  125. GO
  126. SET QUOTED_IDENTIFIER ON
  127. GO
  128. CREATE TABLE [dbo].[Manufacturer](
  129. [ManufacturerId] [int] IDENTITY(1,1) NOT NULL,
  130. [ManufacturerName] [nvarchar](100) NOT NULL,
  131. CONSTRAINT [PK_Manufacturer] PRIMARY KEY CLUSTERED
  132. (
  133. [ManufacturerId] ASC
  134. )WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON, OPTIMIZE_FOR_SEQUENTIAL_KEY = OFF) ON [PRIMARY],
  135. CONSTRAINT [UQ_Manufacturer] UNIQUE NONCLUSTERED
  136. (
  137. [ManufacturerName] ASC
  138. )WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON, OPTIMIZE_FOR_SEQUENTIAL_KEY = OFF) ON [PRIMARY]
  139. ) ON [PRIMARY]
  140. GO
  141. /****** Object: Table [dbo].[Category] Script Date: 07.06.2026 2:11:36 ******/
  142. SET ANSI_NULLS ON
  143. GO
  144. SET QUOTED_IDENTIFIER ON
  145. GO
  146. CREATE TABLE [dbo].[Category](
  147. [CategoryId] [int] IDENTITY(1,1) NOT NULL,
  148. [CategoryName] [nvarchar](100) NOT NULL,
  149. CONSTRAINT [PK_Category] PRIMARY KEY CLUSTERED
  150. (
  151. [CategoryId] ASC
  152. )WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON, OPTIMIZE_FOR_SEQUENTIAL_KEY = OFF) ON [PRIMARY],
  153. CONSTRAINT [UQ_Category] UNIQUE NONCLUSTERED
  154. (
  155. [CategoryName] ASC
  156. )WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON, OPTIMIZE_FOR_SEQUENTIAL_KEY = OFF) ON [PRIMARY]
  157. ) ON [PRIMARY]
  158. GO
  159. /****** Object: Table [dbo].[Product] Script Date: 07.06.2026 2:11:36 ******/
  160. SET ANSI_NULLS ON
  161. GO
  162. SET QUOTED_IDENTIFIER ON
  163. GO
  164. CREATE TABLE [dbo].[Product](
  165. [ProductId] [int] IDENTITY(1,1) NOT NULL,
  166. [Article] [nvarchar](10) NOT NULL,
  167. [Name] [nvarchar](255) NOT NULL,
  168. [UnitId] [int] NOT NULL,
  169. [Price] [decimal](10, 2) NOT NULL,
  170. [SupplierId] [int] NOT NULL,
  171. [ManufacturerId] [int] NOT NULL,
  172. [CategoryId] [int] NOT NULL,
  173. [Discount] [int] NOT NULL,
  174. [Stock] [int] NOT NULL,
  175. [Description] [nvarchar](max) NULL,
  176. [Photo] [nvarchar](100) NULL,
  177. CONSTRAINT [PK_Product] PRIMARY KEY CLUSTERED
  178. (
  179. [ProductId] ASC
  180. )WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON, OPTIMIZE_FOR_SEQUENTIAL_KEY = OFF) ON [PRIMARY],
  181. CONSTRAINT [UQ_Product_Article] UNIQUE NONCLUSTERED
  182. (
  183. [Article] ASC
  184. )WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON, OPTIMIZE_FOR_SEQUENTIAL_KEY = OFF) ON [PRIMARY]
  185. ) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY]
  186. GO
  187. /****** Object: View [dbo].[vCatalog] Script Date: 07.06.2026 2:11:36 ******/
  188. SET ANSI_NULLS ON
  189. GO
  190. SET QUOTED_IDENTIFIER ON
  191. GO
  192. CREATE VIEW [dbo].[vCatalog] AS SELECT p.Article, p.Photo AS [Фото], c.CategoryName AS [Категория товара], p.Name AS [Наименование товара], p.Description AS [Описание товара], m.ManufacturerName AS [Производитель], s.SupplierName AS [Поставщик], p.Price AS [Цена], u.UnitName AS [Единица измерения], p.Stock AS [Кол-во на складе], p.Discount AS [Действующая скидка] FROM dbo.Product p JOIN dbo.Category c ON p.CategoryId=c.CategoryId JOIN dbo.Manufacturer m ON p.ManufacturerId=m.ManufacturerId JOIN dbo.Supplier s ON p.SupplierId=s.SupplierId JOIN dbo.Unit u ON p.UnitId=u.UnitId;
  193. GO
  194. /****** Object: Table [dbo].[OrderStatus] Script Date: 07.06.2026 2:11:36 ******/
  195. SET ANSI_NULLS ON
  196. GO
  197. SET QUOTED_IDENTIFIER ON
  198. GO
  199. CREATE TABLE [dbo].[OrderStatus](
  200. [StatusId] [int] IDENTITY(1,1) NOT NULL,
  201. [StatusName] [nvarchar](50) NOT NULL,
  202. CONSTRAINT [PK_OrderStatus] PRIMARY KEY CLUSTERED
  203. (
  204. [StatusId] ASC
  205. )WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON, OPTIMIZE_FOR_SEQUENTIAL_KEY = OFF) ON [PRIMARY],
  206. CONSTRAINT [UQ_OrderStatus] UNIQUE NONCLUSTERED
  207. (
  208. [StatusName] ASC
  209. )WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON, OPTIMIZE_FOR_SEQUENTIAL_KEY = OFF) ON [PRIMARY]
  210. ) ON [PRIMARY]
  211. GO
  212. /****** Object: Table [dbo].[PickupPoint] Script Date: 07.06.2026 2:11:36 ******/
  213. SET ANSI_NULLS ON
  214. GO
  215. SET QUOTED_IDENTIFIER ON
  216. GO
  217. CREATE TABLE [dbo].[PickupPoint](
  218. [PickupPointId] [int] NOT NULL,
  219. [PostalCode] [nvarchar](10) NOT NULL,
  220. [City] [nvarchar](80) NOT NULL,
  221. [Street] [nvarchar](120) NOT NULL,
  222. [House] [nvarchar](20) NOT NULL,
  223. CONSTRAINT [PK_PickupPoint] PRIMARY KEY CLUSTERED
  224. (
  225. [PickupPointId] ASC
  226. )WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON, OPTIMIZE_FOR_SEQUENTIAL_KEY = OFF) ON [PRIMARY]
  227. ) ON [PRIMARY]
  228. GO
  229. /****** Object: Table [dbo].[Order] Script Date: 07.06.2026 2:11:36 ******/
  230. SET ANSI_NULLS ON
  231. GO
  232. SET QUOTED_IDENTIFIER ON
  233. GO
  234. CREATE TABLE [dbo].[Order](
  235. [OrderId] [int] NOT NULL,
  236. [OrderDate] [date] NULL,
  237. [DeliveryDate] [date] NULL,
  238. [PickupPointId] [int] NOT NULL,
  239. [ClientUserId] [int] NULL,
  240. [ReceiveCode] [int] NULL,
  241. [StatusId] [int] NOT NULL,
  242. CONSTRAINT [PK_Order] PRIMARY KEY CLUSTERED
  243. (
  244. [OrderId] ASC
  245. )WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON, OPTIMIZE_FOR_SEQUENTIAL_KEY = OFF) ON [PRIMARY]
  246. ) ON [PRIMARY]
  247. GO
  248. /****** Object: Table [dbo].[OrderItem] Script Date: 07.06.2026 2:11:36 ******/
  249. SET ANSI_NULLS ON
  250. GO
  251. SET QUOTED_IDENTIFIER ON
  252. GO
  253. CREATE TABLE [dbo].[OrderItem](
  254. [OrderItemId] [int] IDENTITY(1,1) NOT NULL,
  255. [OrderId] [int] NOT NULL,
  256. [Article] [nvarchar](10) NOT NULL,
  257. [Quantity] [int] NOT NULL,
  258. CONSTRAINT [PK_OrderItem] PRIMARY KEY CLUSTERED
  259. (
  260. [OrderItemId] ASC
  261. )WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON, OPTIMIZE_FOR_SEQUENTIAL_KEY = OFF) ON [PRIMARY],
  262. CONSTRAINT [UQ_Item] UNIQUE NONCLUSTERED
  263. (
  264. [OrderId] ASC,
  265. [Article] ASC
  266. )WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON, OPTIMIZE_FOR_SEQUENTIAL_KEY = OFF) ON [PRIMARY]
  267. ) ON [PRIMARY]
  268. GO
  269. /****** Object: View [dbo].[vOrders] Script Date: 07.06.2026 2:11:36 ******/
  270. SET ANSI_NULLS ON
  271. GO
  272. SET QUOTED_IDENTIFIER ON
  273. GO
  274. CREATE VIEW [dbo].[vOrders] AS SELECT o.OrderId, STRING_AGG(oi.Article + N' x' + CAST(oi.Quantity AS nvarchar(10)), N', ') AS [Артикул заказа], st.StatusName AS [Статус заказа], (pp.PostalCode + ', г. ' + pp.City + ', ул. ' + pp.Street + ', д. ' + pp.House) AS [Адрес пункта выдачи], o.OrderDate AS [Дата заказа], o.DeliveryDate AS [Дата доставки] FROM dbo.[Order] o JOIN dbo.OrderStatus st ON o.StatusId=st.StatusId JOIN dbo.PickupPoint pp ON o.PickupPointId=pp.PickupPointId LEFT JOIN dbo.OrderItem oi ON oi.OrderId=o.OrderId GROUP BY o.OrderId, st.StatusName, pp.PostalCode, pp.City, pp.Street, pp.House, o.OrderDate, o.DeliveryDate;
  275. GO
  276. /****** Object: Table [dbo].[Role] Script Date: 07.06.2026 2:11:36 ******/
  277. SET ANSI_NULLS ON
  278. GO
  279. SET QUOTED_IDENTIFIER ON
  280. GO
  281. CREATE TABLE [dbo].[Role](
  282. [RoleId] [int] IDENTITY(1,1) NOT NULL,
  283. [RoleName] [nvarchar](50) NOT NULL,
  284. CONSTRAINT [PK_Role] PRIMARY KEY CLUSTERED
  285. (
  286. [RoleId] ASC
  287. )WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON, OPTIMIZE_FOR_SEQUENTIAL_KEY = OFF) ON [PRIMARY],
  288. CONSTRAINT [UQ_Role] UNIQUE NONCLUSTERED
  289. (
  290. [RoleName] ASC
  291. )WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON, OPTIMIZE_FOR_SEQUENTIAL_KEY = OFF) ON [PRIMARY]
  292. ) ON [PRIMARY]
  293. GO
  294. /****** Object: Table [dbo].[User] Script Date: 07.06.2026 2:11:36 ******/
  295. SET ANSI_NULLS ON
  296. GO
  297. SET QUOTED_IDENTIFIER ON
  298. GO
  299. CREATE TABLE [dbo].[User](
  300. [UserId] [int] IDENTITY(1,1) NOT NULL,
  301. [RoleId] [int] NOT NULL,
  302. [FullName] [nvarchar](150) NOT NULL,
  303. [Login] [nvarchar](100) NOT NULL,
  304. [Password] [nvarchar](100) NOT NULL,
  305. CONSTRAINT [PK_User] PRIMARY KEY CLUSTERED
  306. (
  307. [UserId] ASC
  308. )WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON, OPTIMIZE_FOR_SEQUENTIAL_KEY = OFF) ON [PRIMARY],
  309. CONSTRAINT [UQ_User_Login] UNIQUE NONCLUSTERED
  310. (
  311. [Login] ASC
  312. )WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON, OPTIMIZE_FOR_SEQUENTIAL_KEY = OFF) ON [PRIMARY]
  313. ) ON [PRIMARY]
  314. GO
  315. /****** Object: View [dbo].[vw_UsersLogin] Script Date: 07.06.2026 2:11:36 ******/
  316. SET ANSI_NULLS ON
  317. GO
  318. SET QUOTED_IDENTIFIER ON
  319. GO
  320. CREATE VIEW [dbo].[vw_UsersLogin] AS SELECT u.UserId, u.FullName AS [ФИО], u.Login AS [Логин], u.Password AS [Пароль], r.RoleName AS [Роль] FROM dbo.[User] u JOIN dbo.Role r ON u.RoleId=r.RoleId;
  321. GO
  322. ALTER TABLE [dbo].[Order] WITH CHECK ADD CONSTRAINT [FK_Order_Pickup] FOREIGN KEY([PickupPointId])
  323. REFERENCES [dbo].[PickupPoint] ([PickupPointId])
  324. GO
  325. ALTER TABLE [dbo].[Order] CHECK CONSTRAINT [FK_Order_Pickup]
  326. GO
  327. ALTER TABLE [dbo].[Order] WITH CHECK ADD CONSTRAINT [FK_Order_Status] FOREIGN KEY([StatusId])
  328. REFERENCES [dbo].[OrderStatus] ([StatusId])
  329. GO
  330. ALTER TABLE [dbo].[Order] CHECK CONSTRAINT [FK_Order_Status]
  331. GO
  332. ALTER TABLE [dbo].[Order] WITH CHECK ADD CONSTRAINT [FK_Order_User] FOREIGN KEY([ClientUserId])
  333. REFERENCES [dbo].[User] ([UserId])
  334. GO
  335. ALTER TABLE [dbo].[Order] CHECK CONSTRAINT [FK_Order_User]
  336. GO
  337. ALTER TABLE [dbo].[OrderItem] WITH CHECK ADD CONSTRAINT [FK_Item_Order] FOREIGN KEY([OrderId])
  338. REFERENCES [dbo].[Order] ([OrderId])
  339. ON DELETE CASCADE
  340. GO
  341. ALTER TABLE [dbo].[OrderItem] CHECK CONSTRAINT [FK_Item_Order]
  342. GO
  343. ALTER TABLE [dbo].[OrderItem] WITH CHECK ADD CONSTRAINT [FK_Item_Product] FOREIGN KEY([Article])
  344. REFERENCES [dbo].[Product] ([Article])
  345. GO
  346. ALTER TABLE [dbo].[OrderItem] CHECK CONSTRAINT [FK_Item_Product]
  347. GO
  348. ALTER TABLE [dbo].[Product] WITH CHECK ADD CONSTRAINT [FK_Product_Category] FOREIGN KEY([CategoryId])
  349. REFERENCES [dbo].[Category] ([CategoryId])
  350. GO
  351. ALTER TABLE [dbo].[Product] CHECK CONSTRAINT [FK_Product_Category]
  352. GO
  353. ALTER TABLE [dbo].[Product] WITH CHECK ADD CONSTRAINT [FK_Product_Manufacturer] FOREIGN KEY([ManufacturerId])
  354. REFERENCES [dbo].[Manufacturer] ([ManufacturerId])
  355. GO
  356. ALTER TABLE [dbo].[Product] CHECK CONSTRAINT [FK_Product_Manufacturer]
  357. GO
  358. ALTER TABLE [dbo].[Product] WITH CHECK ADD CONSTRAINT [FK_Product_Supplier] FOREIGN KEY([SupplierId])
  359. REFERENCES [dbo].[Supplier] ([SupplierId])
  360. GO
  361. ALTER TABLE [dbo].[Product] CHECK CONSTRAINT [FK_Product_Supplier]
  362. GO
  363. ALTER TABLE [dbo].[Product] WITH CHECK ADD CONSTRAINT [FK_Product_Unit] FOREIGN KEY([UnitId])
  364. REFERENCES [dbo].[Unit] ([UnitId])
  365. GO
  366. ALTER TABLE [dbo].[Product] CHECK CONSTRAINT [FK_Product_Unit]
  367. GO
  368. ALTER TABLE [dbo].[User] WITH CHECK ADD CONSTRAINT [FK_User_Role] FOREIGN KEY([RoleId])
  369. REFERENCES [dbo].[Role] ([RoleId])
  370. GO
  371. ALTER TABLE [dbo].[User] CHECK CONSTRAINT [FK_User_Role]
  372. GO
  373. ALTER TABLE [dbo].[OrderItem] WITH CHECK ADD CONSTRAINT [CK_Qty] CHECK (([Quantity]>(0)))
  374. GO
  375. ALTER TABLE [dbo].[OrderItem] CHECK CONSTRAINT [CK_Qty]
  376. GO
  377. ALTER TABLE [dbo].[Product] WITH CHECK ADD CONSTRAINT [CK_Disc] CHECK (([Discount]>=(0) AND [Discount]<=(100)))
  378. GO
  379. ALTER TABLE [dbo].[Product] CHECK CONSTRAINT [CK_Disc]
  380. GO
  381. ALTER TABLE [dbo].[Product] WITH CHECK ADD CONSTRAINT [CK_Price] CHECK (([Price]>=(0)))
  382. GO
  383. ALTER TABLE [dbo].[Product] CHECK CONSTRAINT [CK_Price]
  384. GO
  385. ALTER TABLE [dbo].[Product] WITH CHECK ADD CONSTRAINT [CK_Stock] CHECK (([Stock]>=(0)))
  386. GO
  387. ALTER TABLE [dbo].[Product] CHECK CONSTRAINT [CK_Stock]
  388. GO
  389. USE [master]
  390. GO
  391. ALTER DATABASE [ToyWorldDb] SET READ_WRITE
  392. GO