123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213 |
- SET QUOTED_IDENTIFIER OFF;
- GO
- USE [Foghorn];
- GO
- IF SCHEMA_ID(N'dbo') IS NULL EXECUTE(N'CREATE SCHEMA [dbo]');
- GO
- IF OBJECT_ID(N'[dbo].[FK_SubscriberNotification_Subscriber]', 'F') IS NOT NULL
- ALTER TABLE [dbo].[SubscriberNotification] DROP CONSTRAINT [FK_SubscriberNotification_Subscriber];
- GO
- IF OBJECT_ID(N'[dbo].[FK_SubscriberNotification_Notification]', 'F') IS NOT NULL
- ALTER TABLE [dbo].[SubscriberNotification] DROP CONSTRAINT [FK_SubscriberNotification_Notification];
- GO
- IF OBJECT_ID(N'[dbo].[FK_SendingApplicationSubscriber]', 'F') IS NOT NULL
- ALTER TABLE [dbo].[Subscribers] DROP CONSTRAINT [FK_SendingApplicationSubscriber];
- GO
- IF OBJECT_ID(N'[dbo].[FK_NotificationNotificationType]', 'F') IS NOT NULL
- ALTER TABLE [dbo].[Notifications] DROP CONSTRAINT [FK_NotificationNotificationType];
- GO
- IF OBJECT_ID(N'[dbo].[FK_SendingApplicationNotificationType]', 'F') IS NOT NULL
- ALTER TABLE [dbo].[NotificationTypes] DROP CONSTRAINT [FK_SendingApplicationNotificationType];
- GO
- IF OBJECT_ID(N'[dbo].[Subscribers]', 'U') IS NOT NULL
- DROP TABLE [dbo].[Subscribers];
- GO
- IF OBJECT_ID(N'[dbo].[Notifications]', 'U') IS NOT NULL
- DROP TABLE [dbo].[Notifications];
- GO
- IF OBJECT_ID(N'[dbo].[SendingApplications]', 'U') IS NOT NULL
- DROP TABLE [dbo].[SendingApplications];
- GO
- IF OBJECT_ID(N'[dbo].[NotificationTypes]', 'U') IS NOT NULL
- DROP TABLE [dbo].[NotificationTypes];
- GO
- IF OBJECT_ID(N'[dbo].[SubscriberNotification]', 'U') IS NOT NULL
- DROP TABLE [dbo].[SubscriberNotification];
- GO
- CREATE TABLE [dbo].[Subscribers] (
- [SubscriberId] uniqueidentifier NOT NULL,
- [SubscriberName] nvarchar(255) NOT NULL,
- [Port] int NULL,
- [HostName] nvarchar(255) NOT NULL,
- [Password] nvarchar(20) NOT NULL,
- [SendingApplication_SendingApplicationId] int NOT NULL
- );
- GO
- CREATE TABLE [dbo].[Notifications] (
- [NotificationId] int IDENTITY(1,1) NOT NULL,
- [NotificationTitle] nvarchar(max) NOT NULL,
- [NotificationMessage] nvarchar(max) NOT NULL,
- [SentDateTime] datetime NOT NULL,
- [Priority] int NOT NULL,
- [Sticky] bit NOT NULL,
- [NotificationType_NotificationTypeId] int NOT NULL
- );
- GO
- CREATE TABLE [dbo].[SendingApplications] (
- [SendingApplicationId] int IDENTITY(1,1) NOT NULL,
- [SendingApplicationName] nvarchar(255) NOT NULL,
- [SendingApplicationIcon] varbinary(max) NULL
- );
- GO
- CREATE TABLE [dbo].[NotificationTypes] (
- [NotificationTypeId] int IDENTITY(1,1) NOT NULL,
- [NotificationTypeName] nvarchar(32) NOT NULL,
- [NotificationTypeDisplayName] nvarchar(255) NOT NULL,
- [NotificationTypeIcon] varbinary(max) NULL,
- [SendingApplication_SendingApplicationId] int NOT NULL
- );
- GO
- CREATE TABLE [dbo].[SubscriberNotification] (
- [SentToSubscribers_SubscriberId] uniqueidentifier NOT NULL,
- [NotificationsSent_NotificationId] int NOT NULL
- );
- GO
- ALTER TABLE [dbo].[Subscribers]
- ADD CONSTRAINT [PK_Subscribers]
- PRIMARY KEY CLUSTERED ([SubscriberId] ASC);
- GO
- ALTER TABLE [dbo].[Notifications]
- ADD CONSTRAINT [PK_Notifications]
- PRIMARY KEY CLUSTERED ([NotificationId] ASC);
- GO
- ALTER TABLE [dbo].[SendingApplications]
- ADD CONSTRAINT [PK_SendingApplications]
- PRIMARY KEY CLUSTERED ([SendingApplicationId] ASC);
- GO
- ALTER TABLE [dbo].[NotificationTypes]
- ADD CONSTRAINT [PK_NotificationTypes]
- PRIMARY KEY CLUSTERED ([NotificationTypeId] ASC);
- GO
- ALTER TABLE [dbo].[SubscriberNotification]
- ADD CONSTRAINT [PK_SubscriberNotification]
- PRIMARY KEY NONCLUSTERED ([SentToSubscribers_SubscriberId], [NotificationsSent_NotificationId] ASC);
- GO
- ALTER TABLE [dbo].[SubscriberNotification]
- ADD CONSTRAINT [FK_SubscriberNotification_Subscriber]
- FOREIGN KEY ([SentToSubscribers_SubscriberId])
- REFERENCES [dbo].[Subscribers]
- ([SubscriberId])
- ON DELETE NO ACTION ON UPDATE NO ACTION;
- GO
- ALTER TABLE [dbo].[SubscriberNotification]
- ADD CONSTRAINT [FK_SubscriberNotification_Notification]
- FOREIGN KEY ([NotificationsSent_NotificationId])
- REFERENCES [dbo].[Notifications]
- ([NotificationId])
- ON DELETE NO ACTION ON UPDATE NO ACTION;
- CREATE INDEX [IX_FK_SubscriberNotification_Notification]
- ON [dbo].[SubscriberNotification]
- ([NotificationsSent_NotificationId]);
- GO
- ALTER TABLE [dbo].[Subscribers]
- ADD CONSTRAINT [FK_SendingApplicationSubscriber]
- FOREIGN KEY ([SendingApplication_SendingApplicationId])
- REFERENCES [dbo].[SendingApplications]
- ([SendingApplicationId])
- ON DELETE CASCADE ON UPDATE NO ACTION;
- CREATE INDEX [IX_FK_SendingApplicationSubscriber]
- ON [dbo].[Subscribers]
- ([SendingApplication_SendingApplicationId]);
- GO
- ALTER TABLE [dbo].[Notifications]
- ADD CONSTRAINT [FK_NotificationNotificationType]
- FOREIGN KEY ([NotificationType_NotificationTypeId])
- REFERENCES [dbo].[NotificationTypes]
- ([NotificationTypeId])
- ON DELETE NO ACTION ON UPDATE NO ACTION;
- CREATE INDEX [IX_FK_NotificationNotificationType]
- ON [dbo].[Notifications]
- ([NotificationType_NotificationTypeId]);
- GO
- ALTER TABLE [dbo].[NotificationTypes]
- ADD CONSTRAINT [FK_SendingApplicationNotificationType]
- FOREIGN KEY ([SendingApplication_SendingApplicationId])
- REFERENCES [dbo].[SendingApplications]
- ([SendingApplicationId])
- ON DELETE CASCADE ON UPDATE NO ACTION;
- CREATE INDEX [IX_FK_SendingApplicationNotificationType]
- ON [dbo].[NotificationTypes]
- ([SendingApplication_SendingApplicationId]);
- GO
|