جداول سيستم كتابخانه sql
جدول کتابها :
تغییرات : ویرایش خصوصیت فیلد Bname به یک کلید بی همتا (Unique Key) --- تعریف یک Constraint جهت وارد نکردن مقدار صفر به عنوان ورودی به فیلد
AvailableNumber
تعریف یک Constraint جهت اینکه تاریخ تالیف کتاب قبل از تاریخ فعلی باشد
کد:
کد: کد: کد: ------------------------------ نمونه جدول كالا - ----------------- 2- جدول کالا 3-جدول مشتری(توزیع کننده) 4-انبار 5-موجودی انبار 6-ارزش کالا 7-پرداخت تصحيح -جدول گروه کالا 2- جدول کالا 3-جدول مشتری(توزیع کننده) 4-انبار تصحيح اصلاً برای مقادیری که محاسبه میشن نباید فیلد یا جدولی در نظر گرفت. برای موجودی باید اینکارو بکنید (تعداد خرید کل - تعداد بازگشت از خرید - تعدادفروش کل + تعداد بازگشت از فروش) پس جدولی به اسم موجود انبار نداریم 5-پرداخت 6-برای خرید دو تا جدول داریم 7-برای فروش هم مانند خرید عمل کنید از 2 تا جدول 8-جدول بازگشت از خرید 9-جدول بازگشت از فروش مانند قسمت شماره 8 10-نوع خرید/فروش(از نظر کلی و جزئی بودن)
USE [Library]
GO
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[Books](
[BookID] [int] NOT NULL,
[bname] [nvarchar](50) COLLATE Arabic_CI_AS NOT NULL,
[Author] [nvarchar](50) COLLATE Arabic_CI_AS NOT NULL,
[CategoryID] [int] NULL,
[Reportdate] [datetime] NULL,
[availableNumber] [int] NULL,
PRIMARY KEY CLUSTERED
(
[BookID] ASC
)WITH (IGNORE_DUP_KEY = OFF) ON [PRIMARY],
CONSTRAINT [IX_Books] UNIQUE NONCLUSTERED
(
[bname] ASC
)WITH (IGNORE_DUP_KEY = OFF) ON [PRIMARY]
) ON [PRIMARY]
GO
USE [Library]
GO
ALTER TABLE [dbo].[Books] WITH CHECK ADD CONSTRAINT [FK_Books_Categories] FOREIGN KEY([CategoryID])
REFERENCES [dbo].[Categories] ([CategoryID])
GO
ALTER TABLE [dbo].[Books] WITH CHECK ADD CONSTRAINT [CK_Books] CHECK (([AvailableNumber]<>(0)))
GO
ALTER TABLE [dbo].[Books] WITH CHECK ADD CONSTRAINT [CK_Books_1] CHECK (([ReportDate]
جدول طبقه ها :
تغییرات : ویرایش خصوصیت فیلد CategoryName به کلید بی همتا (Unique Key)
USE [Library]
GO
/****** Object: Table [dbo].[Categories] Script Date: 09/12/2007 23:40:26 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[Categories](
[CategoryID] [int] NOT NULL,
[CategoryName] [nvarchar](50) COLLATE Arabic_CI_AS NOT NULL,
CONSTRAINT [PK_Categories] PRIMARY KEY CLUSTERED
(
[CategoryID] ASC
)WITH (IGNORE_DUP_KEY = OFF) ON [PRIMARY],
CONSTRAINT [IX_Categories_1] UNIQUE NONCLUSTERED
(
[CategoryName] ASC
)WITH (IGNORE_DUP_KEY = OFF) ON [PRIMARY]
) ON [PRIMARY]
GO
USE [Library]
GO
ALTER TABLE [dbo].[Categories] WITH CHECK ADD CONSTRAINT [FK_Categories_Categories] FOREIGN KEY([CategoryName])
REFERENCES [dbo].[Categories] ([CategoryName])
جدول اعضا :
تغییرات : تعریف یک constraint برای چک کردن اینکه تاریخ عضویت حتما قبل از تاریخ اتمام عضویت باشد.تغییر نوع فیلد TEL از Int به Varchar(15)
USE [Library]
GO
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
SET ANSI_PADDING ON
GO
CREATE TABLE [dbo].[Members](
[MemberID] [int] NOT NULL,
[FirstName] [nvarchar](50) COLLATE Arabic_CI_AS NOT NULL,
[LastName] [nvarchar](50) COLLATE Arabic_CI_AS NOT NULL,
[Tel] [varchar](15) COLLATE Arabic_CI_AS NULL,
[Address] [nvarchar](50) COLLATE Arabic_CI_AS NULL,
[Membershipdate] [datetime] NOT NULL,
[EXPDate] [datetime] NULL,
CONSTRAINT [PK__Members__014935CB] PRIMARY KEY CLUSTERED
(
[MemberID] ASC
)WITH (IGNORE_DUP_KEY = OFF) ON [PRIMARY]
) ON [PRIMARY]
GO
SET ANSI_PADDING OFF
GO
USE [Library]
GO
ALTER TABLE [dbo].[Members] WITH CHECK ADD CONSTRAINT [CK_Members] CHECK (([ExpDate]>[MemberShipDate]))
جدول امانات :
تغییرات :
تعریف یک فیلد جدید به نام TrustID که خصوصیت Identity اونو فعال کردم
تعریف یک Constraint جهت چک کردن تاریخ زمان برگشت با تاریخ به امانت بردن کتاب به طوری که تاریخ برگشت زودتر از تاریخ امانت کتاب نباشد.
برداشتن خصوصت AllowNulls از فیلدهای MemberID و BookID
USE [Library]
GO
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[Trusts](
[TrustID] [int] IDENTITY(1,1) NOT NULL,
[MemberID] [int] NOT NULL,
[BookID] [int] NOT NULL,
[trustdate] [datetime] NOT NULL,
[ReturnDate] [datetime] NULL,
CONSTRAINT [PK_Trusts] PRIMARY KEY CLUSTERED
(
[TrustID] ASC
)WITH (IGNORE_DUP_KEY = OFF) ON [PRIMARY]
) ON [PRIMARY]
GO
USE [Library]
GO
ALTER TABLE [dbo].[Trusts] WITH CHECK ADD CONSTRAINT [FK__Trusts__BookID__0425A276] FOREIGN KEY([BookID])
REFERENCES [dbo].[Books] ([BookID])
GO
ALTER TABLE [dbo].[Trusts] WITH CHECK ADD CONSTRAINT [FK__Trusts__MemberID__03317E3D] FOREIGN KEY([MemberID])
REFERENCES [dbo].[Members] ([MemberID])
GO
ALTER TABLE [dbo].[Trusts] WITH CHECK ADD CONSTRAINT [CK_Trusts] CHECK (([ReturnDate]>=[TrustDate]))
جداول رو بدین صورت تغییر دادم
1-جدول گروه کالا
فیلدها: 1-نام گروه-شماره گروه
فیلدها:نام کالا-شماره کالا-شماره گروه
فیلدها:نام مشتری-شماره مشتری
فیلدها : نام انبار-شماره انبار
فیلدها: شماره انبار-شماره کالا-تعداد-افزایش/کاهش تعداد
فیلدها: فیمت واحد-شماره کالا
فیلدها: نقدی-غیرنقدی
فیلدها: 1-نام گروه-کد گروه
فیلدها:نام کالا-کد کالا-کد گروه-کد انبار- قیمت فروش
چون مثلاً صندلی هم میتونه تو انبار 1 باشه و هم تو انبار 2 و همچنین صندلی که تو انبار شماره 1 به فروش میره تاثیری رو صندلیهای که تو انبار 2 هستند ایجاد نمیکنه یا بعلکس برای خریدشون.پس باید اینجا کد انبار رو داشته باشید
فیلدها:نام مشتری-شماره مشتری- کد مشتری و ...
فیلدها : نام انبار-کد انبار
فیلدها: نقدی- غیرنقدی- نقدی/غیرنقدی
6/1- جدول خرید
فیلدها:کد فاکتور-تاریخ فاکتور-کد توزیع کننده
6/2- جدول اقلام خرید
فیلدها: کد اقلام-کد فاکتور (Fk به جدول 6/1 فیلد کد فاکتور)- کد کالا- تعداد خرید-قیمت واحد
فیلدها:کد بازگشتی(میتونه Auto number باشه)- کد اقلام (Fk به جدول 6/2 فیلد کد اقلام )- تعداد بازگشتی
فیلدها: کد نوع- نام نوع