script.sql 26 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364
  1. USE [master]
  2. GO
  3. /****** Object: Database [session_01] Script Date: 29.03.2023 10:33:07 ******/
  4. CREATE DATABASE [session_01]
  5. CONTAINMENT = NONE
  6. ON PRIMARY
  7. ( NAME = N'session_01', FILENAME = N'D:\Program Files\Microsoft SQL server\MSSQL15.SQLEXPRESS\MSSQL\DATA\session_01.mdf' , SIZE = 8192KB , MAXSIZE = UNLIMITED, FILEGROWTH = 65536KB )
  8. LOG ON
  9. ( NAME = N'session_01_log', FILENAME = N'D:\Program Files\Microsoft SQL server\MSSQL15.SQLEXPRESS\MSSQL\DATA\session_01_log.ldf' , SIZE = 8192KB , MAXSIZE = 2048GB , FILEGROWTH = 65536KB )
  10. WITH CATALOG_COLLATION = DATABASE_DEFAULT
  11. GO
  12. ALTER DATABASE [session_01] SET COMPATIBILITY_LEVEL = 150
  13. GO
  14. IF (1 = FULLTEXTSERVICEPROPERTY('IsFullTextInstalled'))
  15. begin
  16. EXEC [session_01].[dbo].[sp_fulltext_database] @action = 'enable'
  17. end
  18. GO
  19. ALTER DATABASE [session_01] SET ANSI_NULL_DEFAULT OFF
  20. GO
  21. ALTER DATABASE [session_01] SET ANSI_NULLS OFF
  22. GO
  23. ALTER DATABASE [session_01] SET ANSI_PADDING OFF
  24. GO
  25. ALTER DATABASE [session_01] SET ANSI_WARNINGS OFF
  26. GO
  27. ALTER DATABASE [session_01] SET ARITHABORT OFF
  28. GO
  29. ALTER DATABASE [session_01] SET AUTO_CLOSE OFF
  30. GO
  31. ALTER DATABASE [session_01] SET AUTO_SHRINK OFF
  32. GO
  33. ALTER DATABASE [session_01] SET AUTO_UPDATE_STATISTICS ON
  34. GO
  35. ALTER DATABASE [session_01] SET CURSOR_CLOSE_ON_COMMIT OFF
  36. GO
  37. ALTER DATABASE [session_01] SET CURSOR_DEFAULT GLOBAL
  38. GO
  39. ALTER DATABASE [session_01] SET CONCAT_NULL_YIELDS_NULL OFF
  40. GO
  41. ALTER DATABASE [session_01] SET NUMERIC_ROUNDABORT OFF
  42. GO
  43. ALTER DATABASE [session_01] SET QUOTED_IDENTIFIER OFF
  44. GO
  45. ALTER DATABASE [session_01] SET RECURSIVE_TRIGGERS OFF
  46. GO
  47. ALTER DATABASE [session_01] SET DISABLE_BROKER
  48. GO
  49. ALTER DATABASE [session_01] SET AUTO_UPDATE_STATISTICS_ASYNC OFF
  50. GO
  51. ALTER DATABASE [session_01] SET DATE_CORRELATION_OPTIMIZATION OFF
  52. GO
  53. ALTER DATABASE [session_01] SET TRUSTWORTHY OFF
  54. GO
  55. ALTER DATABASE [session_01] SET ALLOW_SNAPSHOT_ISOLATION OFF
  56. GO
  57. ALTER DATABASE [session_01] SET PARAMETERIZATION SIMPLE
  58. GO
  59. ALTER DATABASE [session_01] SET READ_COMMITTED_SNAPSHOT OFF
  60. GO
  61. ALTER DATABASE [session_01] SET HONOR_BROKER_PRIORITY OFF
  62. GO
  63. ALTER DATABASE [session_01] SET RECOVERY SIMPLE
  64. GO
  65. ALTER DATABASE [session_01] SET MULTI_USER
  66. GO
  67. ALTER DATABASE [session_01] SET PAGE_VERIFY CHECKSUM
  68. GO
  69. ALTER DATABASE [session_01] SET DB_CHAINING OFF
  70. GO
  71. ALTER DATABASE [session_01] SET FILESTREAM( NON_TRANSACTED_ACCESS = OFF )
  72. GO
  73. ALTER DATABASE [session_01] SET TARGET_RECOVERY_TIME = 60 SECONDS
  74. GO
  75. ALTER DATABASE [session_01] SET DELAYED_DURABILITY = DISABLED
  76. GO
  77. ALTER DATABASE [session_01] SET ACCELERATED_DATABASE_RECOVERY = OFF
  78. GO
  79. ALTER DATABASE [session_01] SET QUERY_STORE = OFF
  80. GO
  81. USE [session_01]
  82. GO
  83. /****** Object: Table [dbo].[AttachedProduct] Script Date: 29.03.2023 10:33:07 ******/
  84. SET ANSI_NULLS ON
  85. GO
  86. SET QUOTED_IDENTIFIER ON
  87. GO
  88. CREATE TABLE [dbo].[AttachedProduct](
  89. [MainProductID] [int] NOT NULL,
  90. [AttachedProductID] [int] NOT NULL,
  91. CONSTRAINT [PK_AttachedProduct] PRIMARY KEY CLUSTERED
  92. (
  93. [MainProductID] ASC,
  94. [AttachedProductID] ASC
  95. )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]
  96. ) ON [PRIMARY]
  97. GO
  98. /****** Object: Table [dbo].[Client] Script Date: 29.03.2023 10:33:07 ******/
  99. SET ANSI_NULLS ON
  100. GO
  101. SET QUOTED_IDENTIFIER ON
  102. GO
  103. CREATE TABLE [dbo].[Client](
  104. [ID] [int] IDENTITY(1,1) NOT NULL,
  105. [FirstName] [nvarchar](50) NOT NULL,
  106. [LastName] [nvarchar](50) NOT NULL,
  107. [Patronymic] [nvarchar](50) NULL,
  108. [Birthday] [date] NULL,
  109. [RegistrationDate] [datetime] NOT NULL,
  110. [Email] [nvarchar](255) NULL,
  111. [Phone] [nvarchar](20) NOT NULL,
  112. [GenderCode] [nchar](1) NOT NULL,
  113. [PhotoPath] [nvarchar](1000) NULL,
  114. CONSTRAINT [PK_Client] PRIMARY KEY CLUSTERED
  115. (
  116. [ID] ASC
  117. )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]
  118. ) ON [PRIMARY]
  119. GO
  120. /****** Object: Table [dbo].[ClientService] Script Date: 29.03.2023 10:33:07 ******/
  121. SET ANSI_NULLS ON
  122. GO
  123. SET QUOTED_IDENTIFIER ON
  124. GO
  125. CREATE TABLE [dbo].[ClientService](
  126. [ID] [int] IDENTITY(1,1) NOT NULL,
  127. [ClientID] [int] NOT NULL,
  128. [ServiceID] [int] NOT NULL,
  129. [StartTime] [datetime] NOT NULL,
  130. [Comment] [nvarchar](max) NULL,
  131. CONSTRAINT [PK_ClientService] PRIMARY KEY CLUSTERED
  132. (
  133. [ID] 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. ) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY]
  136. GO
  137. /****** Object: Table [dbo].[DocumentByService] Script Date: 29.03.2023 10:33:07 ******/
  138. SET ANSI_NULLS ON
  139. GO
  140. SET QUOTED_IDENTIFIER ON
  141. GO
  142. CREATE TABLE [dbo].[DocumentByService](
  143. [ID] [int] IDENTITY(1,1) NOT NULL,
  144. [ClientServiceID] [int] NOT NULL,
  145. [DocumentPath] [nvarchar](1000) NOT NULL,
  146. CONSTRAINT [PK_DocumentByService] PRIMARY KEY CLUSTERED
  147. (
  148. [ID] ASC
  149. )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]
  150. ) ON [PRIMARY]
  151. GO
  152. /****** Object: Table [dbo].[Gender] Script Date: 29.03.2023 10:33:07 ******/
  153. SET ANSI_NULLS ON
  154. GO
  155. SET QUOTED_IDENTIFIER ON
  156. GO
  157. CREATE TABLE [dbo].[Gender](
  158. [Code] [nchar](1) NOT NULL,
  159. [Name] [nvarchar](10) NULL,
  160. CONSTRAINT [PK_Gender] PRIMARY KEY CLUSTERED
  161. (
  162. [Code] ASC
  163. )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]
  164. ) ON [PRIMARY]
  165. GO
  166. /****** Object: Table [dbo].[Manufacturer] Script Date: 29.03.2023 10:33:07 ******/
  167. SET ANSI_NULLS ON
  168. GO
  169. SET QUOTED_IDENTIFIER ON
  170. GO
  171. CREATE TABLE [dbo].[Manufacturer](
  172. [ID] [int] IDENTITY(1,1) NOT NULL,
  173. [Name] [nvarchar](100) NOT NULL,
  174. [StartDate] [date] NULL,
  175. CONSTRAINT [PK_Manufacturer] PRIMARY KEY CLUSTERED
  176. (
  177. [ID] ASC
  178. )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]
  179. ) ON [PRIMARY]
  180. GO
  181. /****** Object: Table [dbo].[Product] Script Date: 29.03.2023 10:33:07 ******/
  182. SET ANSI_NULLS ON
  183. GO
  184. SET QUOTED_IDENTIFIER ON
  185. GO
  186. CREATE TABLE [dbo].[Product](
  187. [ID] [int] IDENTITY(1,1) NOT NULL,
  188. [Title] [nvarchar](100) NOT NULL,
  189. [Cost] [money] NOT NULL,
  190. [Description] [nvarchar](max) NULL,
  191. [MainImagePath] [nvarchar](1000) NULL,
  192. [IsActive] [bit] NOT NULL,
  193. [ManufacturerID] [int] NULL,
  194. CONSTRAINT [PK_Product] PRIMARY KEY CLUSTERED
  195. (
  196. [ID] ASC
  197. )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]
  198. ) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY]
  199. GO
  200. /****** Object: Table [dbo].[ProductPhoto] Script Date: 29.03.2023 10:33:07 ******/
  201. SET ANSI_NULLS ON
  202. GO
  203. SET QUOTED_IDENTIFIER ON
  204. GO
  205. CREATE TABLE [dbo].[ProductPhoto](
  206. [ID] [int] IDENTITY(1,1) NOT NULL,
  207. [ProductID] [int] NOT NULL,
  208. [PhotoPath] [nvarchar](1000) NOT NULL,
  209. CONSTRAINT [PK_ProductPhoto] PRIMARY KEY CLUSTERED
  210. (
  211. [ID] ASC
  212. )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]
  213. ) ON [PRIMARY]
  214. GO
  215. /****** Object: Table [dbo].[ProductSale] Script Date: 29.03.2023 10:33:07 ******/
  216. SET ANSI_NULLS ON
  217. GO
  218. SET QUOTED_IDENTIFIER ON
  219. GO
  220. CREATE TABLE [dbo].[ProductSale](
  221. [ID] [int] IDENTITY(1,1) NOT NULL,
  222. [SaleDate] [datetime] NOT NULL,
  223. [ProductID] [int] NOT NULL,
  224. [Quantity] [int] NOT NULL,
  225. [ClientServiceID] [int] NULL,
  226. CONSTRAINT [PK_ProductSale] PRIMARY KEY CLUSTERED
  227. (
  228. [ID] ASC
  229. )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]
  230. ) ON [PRIMARY]
  231. GO
  232. /****** Object: Table [dbo].[Service] Script Date: 29.03.2023 10:33:07 ******/
  233. SET ANSI_NULLS ON
  234. GO
  235. SET QUOTED_IDENTIFIER ON
  236. GO
  237. CREATE TABLE [dbo].[Service](
  238. [ID] [int] IDENTITY(1,1) NOT NULL,
  239. [Title] [nvarchar](100) NOT NULL,
  240. [Cost] [money] NOT NULL,
  241. [DurationInSeconds] [int] NOT NULL,
  242. [Description] [nvarchar](max) NULL,
  243. [Discount] [float] NULL,
  244. [MainImagePath] [nvarchar](1000) NULL,
  245. CONSTRAINT [PK_Service] PRIMARY KEY CLUSTERED
  246. (
  247. [ID] ASC
  248. )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]
  249. ) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY]
  250. GO
  251. /****** Object: Table [dbo].[ServicePhoto] Script Date: 29.03.2023 10:33:07 ******/
  252. SET ANSI_NULLS ON
  253. GO
  254. SET QUOTED_IDENTIFIER ON
  255. GO
  256. CREATE TABLE [dbo].[ServicePhoto](
  257. [ID] [int] IDENTITY(1,1) NOT NULL,
  258. [ServiceID] [int] NOT NULL,
  259. [PhotoPath] [nvarchar](1000) NOT NULL,
  260. CONSTRAINT [PK_ServicePhoto] PRIMARY KEY CLUSTERED
  261. (
  262. [ID] ASC
  263. )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]
  264. ) ON [PRIMARY]
  265. GO
  266. /****** Object: Table [dbo].[Tag] Script Date: 29.03.2023 10:33:07 ******/
  267. SET ANSI_NULLS ON
  268. GO
  269. SET QUOTED_IDENTIFIER ON
  270. GO
  271. CREATE TABLE [dbo].[Tag](
  272. [ID] [int] IDENTITY(1,1) NOT NULL,
  273. [Title] [nvarchar](30) NOT NULL,
  274. [Color] [nchar](6) NOT NULL,
  275. CONSTRAINT [PK_Tag] PRIMARY KEY CLUSTERED
  276. (
  277. [ID] ASC
  278. )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]
  279. ) ON [PRIMARY]
  280. GO
  281. /****** Object: Table [dbo].[TagOfClient] Script Date: 29.03.2023 10:33:07 ******/
  282. SET ANSI_NULLS ON
  283. GO
  284. SET QUOTED_IDENTIFIER ON
  285. GO
  286. CREATE TABLE [dbo].[TagOfClient](
  287. [ClientID] [int] NOT NULL,
  288. [TagID] [int] NOT NULL,
  289. CONSTRAINT [PK_TagOfClient] PRIMARY KEY CLUSTERED
  290. (
  291. [ClientID] ASC,
  292. [TagID] ASC
  293. )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]
  294. ) ON [PRIMARY]
  295. GO
  296. ALTER TABLE [dbo].[AttachedProduct] WITH CHECK ADD CONSTRAINT [FK_AttachedProduct_Product] FOREIGN KEY([MainProductID])
  297. REFERENCES [dbo].[Product] ([ID])
  298. GO
  299. ALTER TABLE [dbo].[AttachedProduct] CHECK CONSTRAINT [FK_AttachedProduct_Product]
  300. GO
  301. ALTER TABLE [dbo].[AttachedProduct] WITH CHECK ADD CONSTRAINT [FK_AttachedProduct_Product1] FOREIGN KEY([AttachedProductID])
  302. REFERENCES [dbo].[Product] ([ID])
  303. GO
  304. ALTER TABLE [dbo].[AttachedProduct] CHECK CONSTRAINT [FK_AttachedProduct_Product1]
  305. GO
  306. ALTER TABLE [dbo].[Client] WITH CHECK ADD CONSTRAINT [FK_Client_Gender] FOREIGN KEY([GenderCode])
  307. REFERENCES [dbo].[Gender] ([Code])
  308. GO
  309. ALTER TABLE [dbo].[Client] CHECK CONSTRAINT [FK_Client_Gender]
  310. GO
  311. ALTER TABLE [dbo].[ClientService] WITH CHECK ADD CONSTRAINT [FK_ClientService_Client] FOREIGN KEY([ClientID])
  312. REFERENCES [dbo].[Client] ([ID])
  313. GO
  314. ALTER TABLE [dbo].[ClientService] CHECK CONSTRAINT [FK_ClientService_Client]
  315. GO
  316. ALTER TABLE [dbo].[ClientService] WITH CHECK ADD CONSTRAINT [FK_ClientService_Service] FOREIGN KEY([ServiceID])
  317. REFERENCES [dbo].[Service] ([ID])
  318. GO
  319. ALTER TABLE [dbo].[ClientService] CHECK CONSTRAINT [FK_ClientService_Service]
  320. GO
  321. ALTER TABLE [dbo].[DocumentByService] WITH CHECK ADD CONSTRAINT [FK_DocumentByService_ClientService] FOREIGN KEY([ClientServiceID])
  322. REFERENCES [dbo].[ClientService] ([ID])
  323. GO
  324. ALTER TABLE [dbo].[DocumentByService] CHECK CONSTRAINT [FK_DocumentByService_ClientService]
  325. GO
  326. ALTER TABLE [dbo].[Product] WITH CHECK ADD CONSTRAINT [FK_Product_Manufacturer] FOREIGN KEY([ManufacturerID])
  327. REFERENCES [dbo].[Manufacturer] ([ID])
  328. GO
  329. ALTER TABLE [dbo].[Product] CHECK CONSTRAINT [FK_Product_Manufacturer]
  330. GO
  331. ALTER TABLE [dbo].[ProductPhoto] WITH CHECK ADD CONSTRAINT [FK_ProductPhoto_Product] FOREIGN KEY([ProductID])
  332. REFERENCES [dbo].[Product] ([ID])
  333. GO
  334. ALTER TABLE [dbo].[ProductPhoto] CHECK CONSTRAINT [FK_ProductPhoto_Product]
  335. GO
  336. ALTER TABLE [dbo].[ProductSale] WITH CHECK ADD CONSTRAINT [FK_ProductSale_ClientService] FOREIGN KEY([ClientServiceID])
  337. REFERENCES [dbo].[ClientService] ([ID])
  338. GO
  339. ALTER TABLE [dbo].[ProductSale] CHECK CONSTRAINT [FK_ProductSale_ClientService]
  340. GO
  341. ALTER TABLE [dbo].[ProductSale] WITH CHECK ADD CONSTRAINT [FK_ProductSale_Product] FOREIGN KEY([ProductID])
  342. REFERENCES [dbo].[Product] ([ID])
  343. GO
  344. ALTER TABLE [dbo].[ProductSale] CHECK CONSTRAINT [FK_ProductSale_Product]
  345. GO
  346. ALTER TABLE [dbo].[ServicePhoto] WITH CHECK ADD CONSTRAINT [FK_ServicePhoto_Service] FOREIGN KEY([ServiceID])
  347. REFERENCES [dbo].[Service] ([ID])
  348. GO
  349. ALTER TABLE [dbo].[ServicePhoto] CHECK CONSTRAINT [FK_ServicePhoto_Service]
  350. GO
  351. ALTER TABLE [dbo].[TagOfClient] WITH CHECK ADD CONSTRAINT [FK_TagOfClient_Client] FOREIGN KEY([ClientID])
  352. REFERENCES [dbo].[Client] ([ID])
  353. GO
  354. ALTER TABLE [dbo].[TagOfClient] CHECK CONSTRAINT [FK_TagOfClient_Client]
  355. GO
  356. ALTER TABLE [dbo].[TagOfClient] WITH CHECK ADD CONSTRAINT [FK_TagOfClient_Tag] FOREIGN KEY([TagID])
  357. REFERENCES [dbo].[Tag] ([ID])
  358. GO
  359. ALTER TABLE [dbo].[TagOfClient] CHECK CONSTRAINT [FK_TagOfClient_Tag]
  360. GO
  361. USE [master]
  362. GO
  363. ALTER DATABASE [session_01] SET READ_WRITE
  364. GO