Merhaba,
Bu hafta içinde bir messenger uygulaması için MsSQL ile hazırladığım bir veri tabanın ilk versiyonunu sizlerle paylaşacağım. Son versiyonunu neden paylaşmadığımı sormazsınız heralde
USE [N2Soft]
GO
/****** Object: Table [dbo].[UsersInfo] Script Date: 10/27/2008 00:10:01 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
SET ANSI_PADDING ON
GO
CREATE TABLE [dbo].[UsersInfo](
[UserID] [int] NOT NULL,
[FirstName] [nvarchar](150) NOT NULL,
[LastName] [nvarchar](90) NOT NULL,
[Picture] [varchar](250) NULL,
[Status] [nchar](10) NOT NULL
) ON [PRIMARY]
GO
SET ANSI_PADDING OFF
GO
/****** Object: Table [dbo].[Users] Script Date: 10/27/2008 00:10:01 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
SET ANSI_PADDING ON
GO
CREATE TABLE [dbo].[Users](
[UserID] [int] IDENTITY(1,1) NOT NULL,
[Email] [varchar](150) NOT NULL,
[Password] [varchar](32) NOT NULL,
[Nickname] [nvarchar](30) NOT NULL,
[RegDate] [date] NOT NULL,
CONSTRAINT [PK_Users] PRIMARY KEY CLUSTERED
(
[UserID] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY]
GO
SET ANSI_PADDING OFF
GO
/****** Object: Table [dbo].[BodyList] Script Date: 10/27/2008 00:10:01 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[BodyList](
[UserID] [int] NOT NULL,
[SecondUID] [int] NOT NULL,
[AddDate] [date] NOT NULL,
[Permission] [bit] NOT NULL
) ON [PRIMARY]
GO
/****** Object: View [dbo].[Banned] Script Date: 10/27/2008 00:10:04 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
create view [dbo].[Banned]
as
select UserID,SecondUID,Permission
from dbo.BodyList
where Permission = 0;
GO
/****** Object: View [dbo].[Accept] Script Date: 10/27/2008 00:10:04 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
create view [dbo].[Accept]
as
select UserID,SecondUID,Permission
from dbo.BodyList
where Permission = 1;
GO
/****** Object: Default [DF_Users_Nickname] Script Date: 10/27/2008 00:10:01 ******/
ALTER TABLE [dbo].[Users] ADD CONSTRAINT [DF_Users_Nickname] DEFAULT (N’Üşengeç’) FOR [Nickname]
GO
/****** Object: Default [DF_UsersInfo_Status] Script Date: 10/27/2008 00:10:01 ******/
ALTER TABLE [dbo].[UsersInfo] ADD CONSTRAINT [DF_UsersInfo_Status] DEFAULT (N’Offline’) FOR [Status]
GO
Table mantığı ile ilgili sanırım bir çıkmazasa düşmezsiniz. Zaten yapı basit. SP veya ileri seviye farklı bir transaction mekanizması bu versiyonunda olmadığından alıp istediğiniz gibi kullanabilirsiniz. Msn messenger veya Yahoo Messenger’da bu mantıkla tablolama yapmaktadır.
Yinede takıldığınız bir yer olursa biliyorsunuz bana nasıl ulaşacağınızı.
Saygılar,
Hakan DAMAR