To me, some of these point to unique constraints.
Don't get me wrong I prefer business rule validation in the business layer,
not the database.
But these look like UNIQUE CONSTRAINTS.
You have to ask yourself, What makes an EVENT unique? The name? The name
and date?
if exists (select * from dbo.sysobjects where id =
object_id(N'[dbo].[Event]') and OBJECTPROPERTY(id, N'IsUserTable') = 1)
BEGIN
DROP TABLE [dbo].[Event]
END
GO
CREATE TABLE [dbo].[Event] (
[EventUUID] [uniqueidentifier] not null default NEWSEQUENTIALID() ,
EventName varchar(64) not null ,
EventDescription varchar(128) not null
)
GO
ALTER TABLE [dbo].[Event]
ADD CONSTRAINT PK_Event_EventUUID
PRIMARY KEY CLUSTERED (EventUUID)
GO
ALTER TABLE dbo.Event
ADD CONSTRAINT Event_EventName_UNIQUE UNIQUE (EventName)
GO
As far as the timeslots, you might look a "time lookup table" where you put
in 15 minute increments or something.
Time rules are especially difficult, especially "prevent overlapping".
I'd seek some more advice in this area.......