Kreiranje tabela:
Code:
IF EXISTS (SELECT * FROM sys.foreign_keys WHERE object_id = OBJECT_ID(N'[dbo].[FK_IzvlacenjeBroj_izvlacenje]') AND parent_object_id = OBJECT_ID(N'[dbo].[IzvlacenjeBroj]'))
ALTER TABLE [dbo].[IzvlacenjeBroj] DROP CONSTRAINT [FK_IzvlacenjeBroj_izvlacenje]
GO
IF EXISTS (SELECT * FROM sys.foreign_keys WHERE object_id = OBJECT_ID(N'[dbo].[FK_kupon_izvlacenje]') AND parent_object_id = OBJECT_ID(N'[dbo].[kupon]'))
ALTER TABLE [dbo].[kupon] DROP CONSTRAINT [FK_kupon_izvlacenje]
GO
IF EXISTS (SELECT * FROM sys.foreign_keys WHERE object_id = OBJECT_ID(N'[dbo].[FK_KuponBroj_kupon]') AND parent_object_id = OBJECT_ID(N'[dbo].[KuponBroj]'))
ALTER TABLE [dbo].[KuponBroj] DROP CONSTRAINT [FK_KuponBroj_kupon]
GO
IF EXISTS (SELECT * FROM sys.foreign_keys WHERE object_id = OBJECT_ID(N'[dbo].[FK_KuponBroj_kupon]') AND parent_object_id = OBJECT_ID(N'[dbo].[KuponBroj]'))
ALTER TABLE [dbo].[KuponBroj] DROP CONSTRAINT [FK_KuponBroj_kupon]
GO
IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[KuponBroj]') AND type in (N'U'))
DROP TABLE [dbo].[KuponBroj]
GO
IF EXISTS (SELECT * FROM sys.foreign_keys WHERE object_id = OBJECT_ID(N'[dbo].[FK_IzvlacenjeBroj_izvlacenje]') AND parent_object_id = OBJECT_ID(N'[dbo].[IzvlacenjeBroj]'))
ALTER TABLE [dbo].[IzvlacenjeBroj] DROP CONSTRAINT [FK_IzvlacenjeBroj_izvlacenje]
GO
IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[IzvlacenjeBroj]') AND type in (N'U'))
DROP TABLE [dbo].[IzvlacenjeBroj]
GO
IF EXISTS (SELECT * FROM sys.foreign_keys WHERE object_id = OBJECT_ID(N'[dbo].[FK_kupon_izvlacenje]') AND parent_object_id = OBJECT_ID(N'[dbo].[kupon]'))
ALTER TABLE [dbo].[kupon] DROP CONSTRAINT [FK_kupon_izvlacenje]
GO
IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[kupon]') AND type in (N'U'))
DROP TABLE [dbo].[kupon]
GO
IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[izvlacenje]') AND type in (N'U'))
DROP TABLE [dbo].[izvlacenje]
GO
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
IF NOT EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[izvlacenje]') AND type in (N'U'))
BEGIN
CREATE TABLE [dbo].[izvlacenje](
[izvlacenje_id] [int] IDENTITY(1,1) NOT NULL,
[vreme] [datetime] NULL,
CONSTRAINT [PK_izvlacenje] PRIMARY KEY CLUSTERED
(
[izvlacenje_id] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY]
END
GO
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
SET ANSI_PADDING ON
GO
IF NOT EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[kupon]') AND type in (N'U'))
BEGIN
CREATE TABLE [dbo].[kupon](
[kupon_id] [int] IDENTITY(1,1) NOT NULL,
[izvlacenje_id] [int] NOT NULL,
[VlasnikKupona] [nvarchar](50) NOT NULL,
[OznakaKupona] [varchar](20) NOT NULL,
CONSTRAINT [PK_kupon] PRIMARY KEY CLUSTERED
(
[kupon_id] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY]
END
GO
SET ANSI_PADDING OFF
GO
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
IF NOT EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[IzvlacenjeBroj]') AND type in (N'U'))
BEGIN
CREATE TABLE [dbo].[IzvlacenjeBroj](
[Id] [int] IDENTITY(1,1) NOT NULL,
[izvlacenje_id] [int] NOT NULL,
[Broj] [int] NOT NULL,
CONSTRAINT [PK_IzvlacenjeBroj] PRIMARY KEY CLUSTERED
(
[Id] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY]
END
GO
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
IF NOT EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[KuponBroj]') AND type in (N'U'))
BEGIN
CREATE TABLE [dbo].[KuponBroj](
[Id] [int] IDENTITY(1,1) NOT NULL,
[kupon_id] [int] NOT NULL,
[Broj] [int] NOT NULL,
CONSTRAINT [PK_KuponBroj] PRIMARY KEY CLUSTERED
(
[Id] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY]
END
GO
IF NOT EXISTS (SELECT * FROM sys.foreign_keys WHERE object_id = OBJECT_ID(N'[dbo].[FK_IzvlacenjeBroj_izvlacenje]') AND parent_object_id = OBJECT_ID(N'[dbo].[IzvlacenjeBroj]'))
ALTER TABLE [dbo].[IzvlacenjeBroj] WITH CHECK ADD CONSTRAINT [FK_IzvlacenjeBroj_izvlacenje] FOREIGN KEY([izvlacenje_id])
REFERENCES [dbo].[izvlacenje] ([izvlacenje_id])
GO
IF EXISTS (SELECT * FROM sys.foreign_keys WHERE object_id = OBJECT_ID(N'[dbo].[FK_IzvlacenjeBroj_izvlacenje]') AND parent_object_id = OBJECT_ID(N'[dbo].[IzvlacenjeBroj]'))
ALTER TABLE [dbo].[IzvlacenjeBroj] CHECK CONSTRAINT [FK_IzvlacenjeBroj_izvlacenje]
GO
IF NOT EXISTS (SELECT * FROM sys.foreign_keys WHERE object_id = OBJECT_ID(N'[dbo].[FK_kupon_izvlacenje]') AND parent_object_id = OBJECT_ID(N'[dbo].[kupon]'))
ALTER TABLE [dbo].[kupon] WITH CHECK ADD CONSTRAINT [FK_kupon_izvlacenje] FOREIGN KEY([izvlacenje_id])
REFERENCES [dbo].[izvlacenje] ([izvlacenje_id])
GO
IF EXISTS (SELECT * FROM sys.foreign_keys WHERE object_id = OBJECT_ID(N'[dbo].[FK_kupon_izvlacenje]') AND parent_object_id = OBJECT_ID(N'[dbo].[kupon]'))
ALTER TABLE [dbo].[kupon] CHECK CONSTRAINT [FK_kupon_izvlacenje]
GO
IF NOT EXISTS (SELECT * FROM sys.foreign_keys WHERE object_id = OBJECT_ID(N'[dbo].[FK_KuponBroj_kupon]') AND parent_object_id = OBJECT_ID(N'[dbo].[KuponBroj]'))
ALTER TABLE [dbo].[KuponBroj] WITH CHECK ADD CONSTRAINT [FK_KuponBroj_kupon] FOREIGN KEY([kupon_id])
REFERENCES [dbo].[kupon] ([kupon_id])
GO
IF EXISTS (SELECT * FROM sys.foreign_keys WHERE object_id = OBJECT_ID(N'[dbo].[FK_KuponBroj_kupon]') AND parent_object_id = OBJECT_ID(N'[dbo].[KuponBroj]'))
ALTER TABLE [dbo].[KuponBroj] CHECK CONSTRAINT [FK_KuponBroj_kupon]
GO
Tabela "Izvlacenje" predstavlja sam događaj izvlačenja i pored osnovnih podataka može joj se dodati npr. voditelj, sponzor i sl.
Tabela "IzvlačenjeBroj" predstavlja brojeve koji su izvučeni u određenom izvlačenju. Ona je referencirana na tabelu "Kupon".
Tabela "Kupon" predstavlja fizički kupon i zbog toga sam joj dodao polja VlasnikKupona i OznakaKupona (može se dodati npr. mesto prodaje kupona i sl.).
Tabela "KuponBroj" predstavlja zaokružene brojeve na kuponu.
Popunjavanje tabela (primer):
Code:
INSERT INTO Izvlacenje (Vreme) VALUES('2011-12-19')
DECLARE @IzvlacenjeId INT
SET @IzvlacenjeId = IDENT_CURRENT('Izvlacenje')
INSERT INTO IzvlacenjeBroj(Izvlacenje_Id, Broj) VALUES(@IzvlacenjeId, 3)
INSERT INTO IzvlacenjeBroj(Izvlacenje_Id, Broj) VALUES(@IzvlacenjeId, 42)
INSERT INTO IzvlacenjeBroj(Izvlacenje_Id, Broj) VALUES(@IzvlacenjeId, 16)
INSERT INTO IzvlacenjeBroj(Izvlacenje_Id, Broj) VALUES(@IzvlacenjeId, 27)
INSERT INTO IzvlacenjeBroj(Izvlacenje_Id, Broj) VALUES(@IzvlacenjeId, 7)
INSERT INTO IzvlacenjeBroj(Izvlacenje_Id, Broj) VALUES(@IzvlacenjeId, 12)
INSERT INTO IzvlacenjeBroj(Izvlacenje_Id, Broj) VALUES(@IzvlacenjeId, 33)
INSERT INTO IzvlacenjeBroj(Izvlacenje_Id, Broj) VALUES(@IzvlacenjeId, 34)
INSERT INTO IzvlacenjeBroj(Izvlacenje_Id, Broj) VALUES(@IzvlacenjeId, 42)
INSERT INTO IzvlacenjeBroj(Izvlacenje_Id, Broj) VALUES(@IzvlacenjeId, 21)
INSERT INTO IzvlacenjeBroj(Izvlacenje_Id, Broj) VALUES(@IzvlacenjeId, 9)
INSERT INTO IzvlacenjeBroj(Izvlacenje_Id, Broj) VALUES(@IzvlacenjeId, 19)
INSERT INTO IzvlacenjeBroj(Izvlacenje_Id, Broj) VALUES(@IzvlacenjeId, 49)
INSERT INTO IzvlacenjeBroj(Izvlacenje_Id, Broj) VALUES(@IzvlacenjeId, 38)
INSERT INTO IzvlacenjeBroj(Izvlacenje_Id, Broj) VALUES(@IzvlacenjeId, 5)
INSERT INTO IzvlacenjeBroj(Izvlacenje_Id, Broj) VALUES(@IzvlacenjeId, 15)
INSERT INTO IzvlacenjeBroj(Izvlacenje_Id, Broj) VALUES(@IzvlacenjeId, 44)
INSERT INTO IzvlacenjeBroj(Izvlacenje_Id, Broj) VALUES(@IzvlacenjeId, 30)
INSERT INTO IzvlacenjeBroj(Izvlacenje_Id, Broj) VALUES(@IzvlacenjeId, 11)
INSERT INTO IzvlacenjeBroj(Izvlacenje_Id, Broj) VALUES(@IzvlacenjeId, 40)
INSERT INTO Kupon (izvlacenje_id, VlasnikKupona, OznakaKupona) VALUES (@IzvlacenjeId, N'Milan Jovanović', '006387532')
DECLARE @KuponId INT
SET @KuponId = IDENT_CURRENT('Kupon')
INSERT INTO KuponBroj(Kupon_Id, Broj) VALUES(@KuponId, 8)
INSERT INTO KuponBroj(Kupon_Id, Broj) VALUES(@KuponId, 19)
INSERT INTO KuponBroj(Kupon_Id, Broj) VALUES(@KuponId, 23)
INSERT INTO KuponBroj(Kupon_Id, Broj) VALUES(@KuponId, 34)
INSERT INTO KuponBroj(Kupon_Id, Broj) VALUES(@KuponId, 36)
INSERT INTO KuponBroj(Kupon_Id, Broj) VALUES(@KuponId, 49)
Dobijenje podataka o pogođenim brojevima određenog izvlačena određenog kupona:
Code:
SELECT Kupon.VlasnikKupona, Kupon.OznakaKupona, KuponBroj.Broj
FROM Kupon INNER JOIN KuponBroj ON Kupon.Kupon_Id = KuponBroj.Kupon_Id
INNER JOIN IzvlacenjeBroj ON IzvlacenjeBroj.Izvlacenje_Id = Kupon.Izvlacenje_Id AND KuponBroj.Broj = IzvlacenjeBroj.Broj
WHERE Kupon.Izvlacenje_Id = 1 AND Kupon.Kupon_Id = 1
Pozdrav