PDA

View Full Version : راهنمایی در ساخت یک دیتابیس و جدوال و ریلشن هایش ( جمعا 3 الی 4 تا جدول نیست)



RIG000
دوشنبه 06 آبان 1392, 09:45 صبح
سلام.
من
1- جدول یوزر
2- جدول pruductLpatop
3- جدول productPrinter
4- جدول خرید یا Factor
دارم.
حالا جداول رو به این شکل درست کردم.
اول جدول یوزر >

CREATE TABLE [dbo].[tblUser](
[Id] [int] IDENTITY(1,1) NOT NULL,
[Name] [nvarchar](50) NOT NULL,
[Lname] [nvarchar](50) NOT NULL,
[Email] [nvarchar](50) NOT NULL,
[Password] [nvarchar](20) NOT NULL,
[Province] [nvarchar](50) NOT NULL,
[City] [nvarchar](50) NOT NULL,
[Address] [nvarchar](100) NOT NULL,
[Mobile] [nchar](11) NOT NULL,
[Tell] [nchar](11) NOT NULL,
[InsertDate] [datetime2](7) NOT NULL,
CONSTRAINT [PK_tblUser_1] PRIMARY KEY CLUSTERED

دوم جدول لپ تاپ

CREATE TABLE [dbo].[tblLaptopProduct](
[ProductId] [int] IDENTITY(1,1) NOT NULL,
[Model] [nvarchar](50) NOT NULL,
[Cpu] [nchar](50) NOT NULL,
[Ram] [nvarchar](50) NOT NULL,
[Hard] [nvarchar](50) NOT NULL,
[Graphic] [nvarchar](50) NOT NULL,
[MonitorInch] [nvarchar](50) NOT NULL,
[OS] [nvarchar](50) NOT NULL,
[PricBuy] [nvarchar](20) NOT NULL,
[PricSale] [nvarchar](20) NOT NULL,
[Decription] [nvarchar](max) NULL,
CONSTRAINT [PK_tblProduct] PRIMARY KEY CLUSTERED


سوم جدول پرینتر
نکته: اینکه همه پرینتر ها این خصوصیات رو ندارند و یعنی وقتی بعضی از پرینتر ها ثبت بشه ممکن بعضی از فیلد ها رو نیاز نداشته باشه و من براشون مثلا ندارد پاس بدم...

CREATE TABLE [dbo].[tblPrinterProduct](
[ProductPrinterId] [int] IDENTITY(1,1) NOT NULL,
[UseType] [nvarchar](10) NOT NULL,
[PaperSize] [nvarchar](30) NOT NULL,
[MinPrintSize] [nvarchar](30) NOT NULL,
[MaxPrintSize] [nvarchar](30) NOT NULL,
[DpiPrintQuality] [nvarchar](10) NOT NULL,
[PrintInMinuteAFour] [nvarchar](10) NOT NULL,
[MinMemory] [nvarchar](10) NOT NULL,
[MaxMemory] [nvarchar](10) NOT NULL,
[PrintCapacityInMonth] [nvarchar](10) NOT NULL,
[MinAgePaper] [nvarchar](10) NOT NULL,
[MaxAgePaper] [nvarchar](10) NOT NULL,
[CopySpeedInMinute] [nvarchar](10) NOT NULL,
[SoftWareScanQuality] [nvarchar](10) NOT NULL,
[AdfVolume] [nvarchar](10) NOT NULL,
[ModemSpeed] [nvarchar](10) NOT NULL,
[OSCompatible] [nvarchar](max) NOT NULL,
[ConnectionType] [nvarchar](50) NOT NULL,
[Ability] [nvarchar](30) NOT NULL,
[ProductBuy] [nvarchar](20) NOT NULL,
[ProductSale] [nvarchar](20) NOT NULL,
CONSTRAINT [PK_tblPrinterProduct] PRIMARY KEY CLUSTERED


چهارم
جدول فاکتور ....

CREATE TABLE [dbo].[tblFactor](
[FacId] [int] IDENTITY(1,1) NOT NULL,
[UserId] [int] NOT NULL,
[LaptopId] [int] NOT NULL,
[PrinterId] [int] NOT NULL,
[TotalCount] [nvarchar](10) NOT NULL,
[TotalPric] [nvarchar](20) NOT NULL,
[date] [datetime2](7) NOT NULL,
CONSTRAINT [PK_tblFactor] PRIMARY KEY CLUSTERED
اینجا مشکل اینه که در هر رکورد فقط یکی از فیلد های laptopid و printerid ثبت میشه ...

در کل میدونم که جدواولم دست خوش تغییرات بزرگی هست.
لطفا" کمک کنید...
در ضمن تو هر جدول من id جدول رو pk و Identify رو yes کردم.

ممنونم اگه کمکم کنید.

hossein_h62
دوشنبه 06 آبان 1392, 11:56 صبح
دوست عزیز مشکل چیه الان ؟
ساختار جداول رو باید چک کنیم ؟!

RIG000
دوشنبه 06 آبان 1392, 12:51 عصر
بله. راستش سوالاتم رو هم نوشتم که زیرش یعنی مشکلات رو هم گفتم... ما چیکار کنیم تا این جداول بهینه بشه ؟

RIG000
سه شنبه 07 آبان 1392, 10:31 صبح
این رو لااقل راهنمایی کنید..
من اگه خرید داشته باشم و تو جدول فاکتور من بشینه و اگه lpatop خریده باشم....
اونوقت با این جدول فاکتور من فیلد پرینتر ایدی خلی میمونه که!!!

CREATE TABLE [dbo].[tblFactor](
[FacId] [int] IDENTITY(1,1) NOT NULL,
[UserId] [int] NOT NULL,
[LaptopId] [int] NOT NULL,
[PrinterId] [int] NOT NULL,
[TotalCount] [nvarchar](10) NOT NULL,
[TotalPric] [nvarchar](20) NOT NULL,
[date] [datetime2](7) NOT NULL,
CONSTRAINT [PK_tblFactor] PRIMARY KEY CLUSTERED

hossein_h62
سه شنبه 07 آبان 1392, 11:43 صبح
دوست عزیز کسی پروژه شما رو تحلیل نکرده که جواب دقیقی بهتون بده، ولی نظر من اینه که یه جدول Product در نظر بگیرید که انواع اصلی اجناس در اون ثبت بشن و جداول فرعی پرینتر و لپ تاپ و غیره به کلید اصلی Product مرتبط باشند، بعد در جدول Factor کد product اصلی و کد محصول زیرمجموعه رو ثبت کنید.با این طراحی اگر n محصول هم به اجناستون اضافه بشه جدول Factor شما ثابت هست ولی با طراحی قبلی با اضافه شدن محصولات باید یک فیلد مختص اون محصول اضافه کنید.

mehdin69
سه شنبه 07 آبان 1392, 12:31 عصر
مغز من میگه کل دیتابیس شما مشکل اساسی داره چرا؟؟؟ اومدیم فردا طرف که سایت بهتون داده گفت گوشی موبایل هم توش باشه... می خواین یه جدول بسازین برا گوشی موبایل؟؟؟
برا هر کالا یکی اضافه می کنین؟
یه نگاه به این دیتابیس که الان درست کردم بندازید اگر هم مشکل داره به بزرگواری خودتون ببخشید چون سریع درست شده
کافیه یه دیتابیس به نام shop درست کنین و اسکریپت زیر رو توش اجرا کنید


USE [shop]
GO
/****** Object: Table [dbo].[Field] Script Date: 10/29/2013 01:11:13 ب.ظ ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[Field](
[Id_Field] [uniqueidentifier] NOT NULL,
[Name] [nvarchar](50) NOT NULL,
CONSTRAINT [PK_Field] PRIMARY KEY CLUSTERED
(
[Id_Field] 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
/****** Object: Table [dbo].[OrderDetails] Script Date: 10/29/2013 01:11:13 ب.ظ ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[OrderDetails](
[OrderDetailID] [uniqueidentifier] NOT NULL,
[OrderID] [uniqueidentifier] NOT NULL,
[ProductID] [uniqueidentifier] NOT NULL,
[OrderedCount] [int] NOT NULL,
CONSTRAINT [PK_OrderDetails] PRIMARY KEY CLUSTERED
(
[OrderDetailID] 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
/****** Object: Table [dbo].[Orders] Script Date: 10/29/2013 01:11:13 ب.ظ ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[Orders](
[OrderID] [uniqueidentifier] NOT NULL,
[UserID] [uniqueidentifier] NULL,
[OrderDate] [datetime] NOT NULL,
[IsFinalized] [bit] NOT NULL,
CONSTRAINT [PK_Orders] PRIMARY KEY CLUSTERED
(
[OrderID] 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
/****** Object: Table [dbo].[Product] Script Date: 10/29/2013 01:11:13 ب.ظ ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[Product](
[Id_Product] [uniqueidentifier] NOT NULL,
[Name] [nvarchar](50) NOT NULL,
[Id_Field] [uniqueidentifier] NOT NULL,
[Id_GroupProduct] [uniqueidentifier] NOT NULL,
CONSTRAINT [PK_Product] PRIMARY KEY CLUSTERED
(
[Id_Product] 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
/****** Object: Table [dbo].[Product_Field] Script Date: 10/29/2013 01:11:13 ب.ظ ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[Product_Field](
[Id_Product] [uniqueidentifier] NOT NULL,
[Id_Field] [uniqueidentifier] NOT NULL,
CONSTRAINT [PK_Product_Field] PRIMARY KEY CLUSTERED
(
[Id_Product] ASC,
[Id_Field] 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
/****** Object: Table [dbo].[ProductGroup] Script Date: 10/29/2013 01:11:13 ب.ظ ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[ProductGroup](
[Id_ProductGroup] [uniqueidentifier] NOT NULL,
[Name] [nvarchar](50) NOT NULL,
CONSTRAINT [PK_ProductGroup] PRIMARY KEY CLUSTERED
(
[Id_ProductGroup] 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
/****** Object: Table [dbo].[Roles] Script Date: 10/29/2013 01:11:13 ب.ظ ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
SET ANSI_PADDING ON
GO
CREATE TABLE [dbo].[Roles](
[RoleID] [uniqueidentifier] NOT NULL,
[RoleTitle] [nvarchar](50) NOT NULL,
[RoleNameInSystem] [varchar](50) NOT NULL,
CONSTRAINT [PK_Roles] PRIMARY KEY CLUSTERED
(
[RoleID] 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].[Users] Script Date: 10/29/2013 01:11:13 ب.ظ ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
SET ANSI_PADDING ON
GO
CREATE TABLE [dbo].[Users](
[UserID] [uniqueidentifier] NOT NULL,
[RoleId] [uniqueidentifier] NOT NULL,
[Username] [nvarchar](50) NOT NULL,
[Password] [nvarchar](50) NOT NULL,
[Email] [varchar](150) NOT NULL,
[Phone] [varchar](50) NOT NULL,
[Address] [nvarchar](500) 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
ALTER TABLE [dbo].[Field] ADD CONSTRAINT [DF_Field_Id_Field] DEFAULT (newid()) FOR [Id_Field]
GO
ALTER TABLE [dbo].[OrderDetails] ADD CONSTRAINT [DF_OrderDetails_OrderDetailID] DEFAULT (newid()) FOR [OrderDetailID]
GO
ALTER TABLE [dbo].[Orders] ADD CONSTRAINT [DF_Orders_OrderID] DEFAULT (newid()) FOR [OrderID]
GO
ALTER TABLE [dbo].[Orders] ADD CONSTRAINT [DF_Orders_IsFinalized] DEFAULT ((0)) FOR [IsFinalized]
GO
ALTER TABLE [dbo].[Product] ADD CONSTRAINT [DF_Product_Id_Product] DEFAULT (newid()) FOR [Id_Product]
GO
ALTER TABLE [dbo].[ProductGroup] ADD CONSTRAINT [DF_ProductGroup_Id_Field] DEFAULT (newid()) FOR [Id_ProductGroup]
GO
ALTER TABLE [dbo].[Roles] ADD CONSTRAINT [DF_Roles_RoleID] DEFAULT (newid()) FOR [RoleID]
GO
ALTER TABLE [dbo].[Users] ADD CONSTRAINT [DF_Users_UserID] DEFAULT (newid()) FOR [UserID]
GO
ALTER TABLE [dbo].[OrderDetails] WITH CHECK ADD CONSTRAINT [FK_OrderDetails_Orders] FOREIGN KEY([OrderID])
REFERENCES [dbo].[Orders] ([OrderID])
GO
ALTER TABLE [dbo].[OrderDetails] CHECK CONSTRAINT [FK_OrderDetails_Orders]
GO
ALTER TABLE [dbo].[OrderDetails] WITH CHECK ADD CONSTRAINT [FK_OrderDetails_Product] FOREIGN KEY([ProductID])
REFERENCES [dbo].[Product] ([Id_Product])
GO
ALTER TABLE [dbo].[OrderDetails] CHECK CONSTRAINT [FK_OrderDetails_Product]
GO
ALTER TABLE [dbo].[Product] WITH CHECK ADD CONSTRAINT [FK_Product_ProductGroup] FOREIGN KEY([Id_GroupProduct])
REFERENCES [dbo].[ProductGroup] ([Id_ProductGroup])
GO
ALTER TABLE [dbo].[Product] CHECK CONSTRAINT [FK_Product_ProductGroup]
GO
ALTER TABLE [dbo].[Product_Field] WITH CHECK ADD CONSTRAINT [FK_Product_Field_Field] FOREIGN KEY([Id_Field])
REFERENCES [dbo].[Field] ([Id_Field])
GO
ALTER TABLE [dbo].[Product_Field] CHECK CONSTRAINT [FK_Product_Field_Field]
GO
ALTER TABLE [dbo].[Product_Field] WITH CHECK ADD CONSTRAINT [FK_Product_Field_Product] FOREIGN KEY([Id_Product])
REFERENCES [dbo].[Product] ([Id_Product])
GO
ALTER TABLE [dbo].[Product_Field] CHECK CONSTRAINT [FK_Product_Field_Product]
GO
ALTER TABLE [dbo].[Users] WITH CHECK ADD CONSTRAINT [FK_Users_Roles] FOREIGN KEY([RoleId])
REFERENCES [dbo].[Roles] ([RoleID])
GO
ALTER TABLE [dbo].[Users] CHECK CONSTRAINT [FK_Users_Roles]
GO



موفق باشید

mehdin69
سه شنبه 07 آبان 1392, 12:39 عصر
اینی که من دست کردم به 8 جدول رسیده .... حالا خیلی چیزا توش نداشتم :دی

mehdin69
سه شنبه 07 آبان 1392, 13:21 عصر
دوستان یه اشتباه شده بود توی اسکریپت قبلی این رو همراه با اطلاعات داخل دیتابیس میذارم که خیالمون از درست بودنش راحت شه
یه دیتابیس بنام shop درست کنین و اسکریپت زیر رو اجرا کنین
موفق باشید :)


USE [shop]
GO
/****** Object: Table [dbo].[Field] Script Date: 10/29/2013 02:01:31 ب.ظ ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[Field](
[Id_Field] [uniqueidentifier] NOT NULL,
[Name] [nvarchar](50) NOT NULL,
CONSTRAINT [PK_Field] PRIMARY KEY CLUSTERED
(
[Id_Field] 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
/****** Object: Table [dbo].[OrderDetails] Script Date: 10/29/2013 02:01:31 ب.ظ ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[OrderDetails](
[OrderDetailID] [uniqueidentifier] NOT NULL,
[OrderID] [uniqueidentifier] NOT NULL,
[ProductID] [uniqueidentifier] NOT NULL,
[OrderedCount] [int] NOT NULL,
CONSTRAINT [PK_OrderDetails] PRIMARY KEY CLUSTERED
(
[OrderDetailID] 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
/****** Object: Table [dbo].[Orders] Script Date: 10/29/2013 02:01:31 ب.ظ ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[Orders](
[OrderID] [uniqueidentifier] NOT NULL,
[UserID] [uniqueidentifier] NULL,
[OrderDate] [datetime] NOT NULL,
[IsFinalized] [bit] NOT NULL,
CONSTRAINT [PK_Orders] PRIMARY KEY CLUSTERED
(
[OrderID] 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
/****** Object: Table [dbo].[Product] Script Date: 10/29/2013 02:01:31 ب.ظ ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[Product](
[Id_Product] [uniqueidentifier] NOT NULL,
[Name] [nvarchar](50) NOT NULL,
[Id_GroupProduct] [uniqueidentifier] NOT NULL,
CONSTRAINT [PK_Product] PRIMARY KEY CLUSTERED
(
[Id_Product] 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
/****** Object: Table [dbo].[Product_Field] Script Date: 10/29/2013 02:01:31 ب.ظ ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[Product_Field](
[Id_Product] [uniqueidentifier] NOT NULL,
[Id_Field] [uniqueidentifier] NOT NULL,
[Value] [nvarchar](max) NULL,
CONSTRAINT [PK_Product_Field] PRIMARY KEY CLUSTERED
(
[Id_Product] ASC,
[Id_Field] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY]

GO
/****** Object: Table [dbo].[ProductGroup] Script Date: 10/29/2013 02:01:31 ب.ظ ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[ProductGroup](
[Id_ProductGroup] [uniqueidentifier] NOT NULL,
[Name] [nvarchar](50) NOT NULL,
CONSTRAINT [PK_ProductGroup] PRIMARY KEY CLUSTERED
(
[Id_ProductGroup] 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
/****** Object: Table [dbo].[Roles] Script Date: 10/29/2013 02:01:31 ب.ظ ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
SET ANSI_PADDING ON
GO
CREATE TABLE [dbo].[Roles](
[RoleID] [uniqueidentifier] NOT NULL,
[RoleTitle] [nvarchar](50) NOT NULL,
[RoleNameInSystem] [varchar](50) NOT NULL,
CONSTRAINT [PK_Roles] PRIMARY KEY CLUSTERED
(
[RoleID] 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].[Users] Script Date: 10/29/2013 02:01:31 ب.ظ ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
SET ANSI_PADDING ON
GO
CREATE TABLE [dbo].[Users](
[UserID] [uniqueidentifier] NOT NULL,
[RoleId] [uniqueidentifier] NOT NULL,
[Username] [nvarchar](50) NOT NULL,
[Password] [nvarchar](50) NOT NULL,
[Email] [varchar](150) NOT NULL,
[Phone] [varchar](50) NOT NULL,
[Address] [nvarchar](500) 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
INSERT [dbo].[Field] ([Id_Field], [Name]) VALUES (N'72ca79d1-3750-4556-a1a6-07480f411d31', N'Ability')
GO
INSERT [dbo].[Field] ([Id_Field], [Name]) VALUES (N'669078f5-7697-4d44-b2e2-0a86cdbbded4', N'Model')
GO
INSERT [dbo].[Field] ([Id_Field], [Name]) VALUES (N'774cb1f6-fd00-4454-ad6e-0c3748dfb489', N'SoftWareScanQuality')
GO
INSERT [dbo].[Field] ([Id_Field], [Name]) VALUES (N'bc90e73b-d0e6-4979-b727-0c5acf568d72', N'MinPrintSize')
GO
INSERT [dbo].[Field] ([Id_Field], [Name]) VALUES (N'fec65e5a-94cc-4c79-8824-14bf3b8604c6', N'Brand')
GO
INSERT [dbo].[Field] ([Id_Field], [Name]) VALUES (N'b2b425da-79bf-4faf-b805-18ada9011fe0', N'DpiPrintQuality')
GO
INSERT [dbo].[Field] ([Id_Field], [Name]) VALUES (N'9cdc2cc9-c4c3-43d0-8912-1c5f1d4c30a1', N'PrintCapacityInMonth')
GO
INSERT [dbo].[Field] ([Id_Field], [Name]) VALUES (N'3784b1f3-84c5-4c97-b052-1efbaa21fe9b', N'Ram')
GO
INSERT [dbo].[Field] ([Id_Field], [Name]) VALUES (N'3fc08b7f-58a9-4d18-861a-276565eabb88', N'MaxAgePaper')
GO
INSERT [dbo].[Field] ([Id_Field], [Name]) VALUES (N'7f437284-05df-416e-8309-30c2c8288708', N'MaxMemory')
GO
INSERT [dbo].[Field] ([Id_Field], [Name]) VALUES (N'ba1d194d-df73-4dbc-85e3-3e01e829e2a3', N'CopySpeedInMinute')
GO
INSERT [dbo].[Field] ([Id_Field], [Name]) VALUES (N'b233ddd3-165b-43c3-a6b3-4aed325f95dd', N'MinAgePaper')
GO
INSERT [dbo].[Field] ([Id_Field], [Name]) VALUES (N'0f9c35af-cde2-4b52-b2c6-6b2058069234', N'ConnectionType')
GO
INSERT [dbo].[Field] ([Id_Field], [Name]) VALUES (N'6c54ea80-cf17-4176-ba31-6cf9d2a2da30', N'Cpu')
GO
INSERT [dbo].[Field] ([Id_Field], [Name]) VALUES (N'e3d2fb5a-585f-4a05-ac41-6fd5275eefdd', N'ModemSpeed')
GO
INSERT [dbo].[Field] ([Id_Field], [Name]) VALUES (N'97ee6a1a-81be-45be-9bee-8b3071485532', N'Cache')
GO
INSERT [dbo].[Field] ([Id_Field], [Name]) VALUES (N'086bd83d-490d-463c-87a1-9ef161336e8c', N'Hard')
GO
INSERT [dbo].[Field] ([Id_Field], [Name]) VALUES (N'f86c9710-52b0-4e14-8348-a776ccd2e1cc', N'DisplaySize')
GO
INSERT [dbo].[Field] ([Id_Field], [Name]) VALUES (N'a98ab409-bde7-4a60-94a2-a8e6ffca8c13', N'PrintInMinuteAFour')
GO
INSERT [dbo].[Field] ([Id_Field], [Name]) VALUES (N'89c4871a-c0c1-4e34-9cb0-aaeb2a260027', N'UseType')
GO
INSERT [dbo].[Field] ([Id_Field], [Name]) VALUES (N'81d02c84-aeef-4f8b-8c4e-afe75dbf970d', N'AdfVolume')
GO
INSERT [dbo].[Field] ([Id_Field], [Name]) VALUES (N'adcc7d33-41f5-400d-b58b-b82ee2ab1137', N'Graphic')
GO
INSERT [dbo].[Field] ([Id_Field], [Name]) VALUES (N'b980564a-c998-4489-b21c-c116350fbf16', N'MaxPrintSize')
GO
INSERT [dbo].[Field] ([Id_Field], [Name]) VALUES (N'dcf1003d-e74c-4f41-b89b-cd080a154eb6', N'PricSale')
GO
INSERT [dbo].[Field] ([Id_Field], [Name]) VALUES (N'185b36bd-7f19-4b17-9a22-d6588b61bf5e', N'MinMemory')
GO
INSERT [dbo].[Field] ([Id_Field], [Name]) VALUES (N'b8639e3c-054e-408e-a81a-e04aa9d88011', N'OS')
GO
INSERT [dbo].[Field] ([Id_Field], [Name]) VALUES (N'5c3a7650-f875-49a5-b86a-e2c91c67ccff', N'Decription')
GO
INSERT [dbo].[Field] ([Id_Field], [Name]) VALUES (N'4cec5c7f-a863-4784-96a9-e9549016c71b', N'PaperSize')
GO
INSERT [dbo].[Field] ([Id_Field], [Name]) VALUES (N'53976aaa-2dc3-43fd-be68-f5b8d6acd4d8', N'PricSale')
GO
INSERT [dbo].[Field] ([Id_Field], [Name]) VALUES (N'acfc5e8d-d053-4590-b44c-fd6ba125a0c8', N'OSCompatible')
GO
INSERT [dbo].[Product] ([Id_Product], [Name], [Id_GroupProduct]) VALUES (N'46f89a98-78f9-45d9-8222-160434ce6d0a', N'Laptop Asus N56 ', N'8337db67-a394-4c90-ab09-dad4a5cfc728')
GO
INSERT [dbo].[Product] ([Id_Product], [Name], [Id_GroupProduct]) VALUES (N'5edbaece-1137-4193-9b8b-1dcad5eab613', N'Printer Hp 1060', N'8ef4a3c8-c63e-4a49-8c07-529365c28fc1')
GO
INSERT [dbo].[Product_Field] ([Id_Product], [Id_Field], [Value]) VALUES (N'46f89a98-78f9-45d9-8222-160434ce6d0a', N'669078f5-7697-4d44-b2e2-0a86cdbbded4', N'N56')
GO
INSERT [dbo].[Product_Field] ([Id_Product], [Id_Field], [Value]) VALUES (N'46f89a98-78f9-45d9-8222-160434ce6d0a', N'fec65e5a-94cc-4c79-8824-14bf3b8604c6', N'Asus')
GO
INSERT [dbo].[Product_Field] ([Id_Product], [Id_Field], [Value]) VALUES (N'46f89a98-78f9-45d9-8222-160434ce6d0a', N'6c54ea80-cf17-4176-ba31-6cf9d2a2da30', N'Cor I 7')
GO
INSERT [dbo].[Product_Field] ([Id_Product], [Id_Field], [Value]) VALUES (N'46f89a98-78f9-45d9-8222-160434ce6d0a', N'086bd83d-490d-463c-87a1-9ef161336e8c', N'500 SSD')
GO
INSERT [dbo].[Product_Field] ([Id_Product], [Id_Field], [Value]) VALUES (N'46f89a98-78f9-45d9-8222-160434ce6d0a', N'adcc7d33-41f5-400d-b58b-b82ee2ab1137', N'2 Gig Geforce')
GO
INSERT [dbo].[Product_Field] ([Id_Product], [Id_Field], [Value]) VALUES (N'46f89a98-78f9-45d9-8222-160434ce6d0a', N'b8639e3c-054e-408e-a81a-e04aa9d88011', N'Win 8 Perfesional')
GO
INSERT [dbo].[ProductGroup] ([Id_ProductGroup], [Name]) VALUES (N'8ef4a3c8-c63e-4a49-8c07-529365c28fc1', N'پرینتر')
GO
INSERT [dbo].[ProductGroup] ([Id_ProductGroup], [Name]) VALUES (N'8337db67-a394-4c90-ab09-dad4a5cfc728', N'لپ تلپ')
GO
ALTER TABLE [dbo].[Field] ADD CONSTRAINT [DF_Field_Id_Field] DEFAULT (newid()) FOR [Id_Field]
GO
ALTER TABLE [dbo].[OrderDetails] ADD CONSTRAINT [DF_OrderDetails_OrderDetailID] DEFAULT (newid()) FOR [OrderDetailID]
GO
ALTER TABLE [dbo].[Orders] ADD CONSTRAINT [DF_Orders_OrderID] DEFAULT (newid()) FOR [OrderID]
GO
ALTER TABLE [dbo].[Orders] ADD CONSTRAINT [DF_Orders_IsFinalized] DEFAULT ((0)) FOR [IsFinalized]
GO
ALTER TABLE [dbo].[Product] ADD CONSTRAINT [DF_Product_Id_Product] DEFAULT (newid()) FOR [Id_Product]
GO
ALTER TABLE [dbo].[ProductGroup] ADD CONSTRAINT [DF_ProductGroup_Id_Field] DEFAULT (newid()) FOR [Id_ProductGroup]
GO
ALTER TABLE [dbo].[Roles] ADD CONSTRAINT [DF_Roles_RoleID] DEFAULT (newid()) FOR [RoleID]
GO
ALTER TABLE [dbo].[Users] ADD CONSTRAINT [DF_Users_UserID] DEFAULT (newid()) FOR [UserID]
GO
ALTER TABLE [dbo].[OrderDetails] WITH CHECK ADD CONSTRAINT [FK_OrderDetails_Orders] FOREIGN KEY([OrderID])
REFERENCES [dbo].[Orders] ([OrderID])
GO
ALTER TABLE [dbo].[OrderDetails] CHECK CONSTRAINT [FK_OrderDetails_Orders]
GO
ALTER TABLE [dbo].[OrderDetails] WITH CHECK ADD CONSTRAINT [FK_OrderDetails_Product] FOREIGN KEY([ProductID])
REFERENCES [dbo].[Product] ([Id_Product])
GO
ALTER TABLE [dbo].[OrderDetails] CHECK CONSTRAINT [FK_OrderDetails_Product]
GO
ALTER TABLE [dbo].[Product] WITH CHECK ADD CONSTRAINT [FK_Product_ProductGroup] FOREIGN KEY([Id_GroupProduct])
REFERENCES [dbo].[ProductGroup] ([Id_ProductGroup])
GO
ALTER TABLE [dbo].[Product] CHECK CONSTRAINT [FK_Product_ProductGroup]
GO
ALTER TABLE [dbo].[Product_Field] WITH CHECK ADD CONSTRAINT [FK_Product_Field_Field] FOREIGN KEY([Id_Field])
REFERENCES [dbo].[Field] ([Id_Field])
GO
ALTER TABLE [dbo].[Product_Field] CHECK CONSTRAINT [FK_Product_Field_Field]
GO
ALTER TABLE [dbo].[Product_Field] WITH CHECK ADD CONSTRAINT [FK_Product_Field_Product] FOREIGN KEY([Id_Product])
REFERENCES [dbo].[Product] ([Id_Product])
GO
ALTER TABLE [dbo].[Product_Field] CHECK CONSTRAINT [FK_Product_Field_Product]
GO
ALTER TABLE [dbo].[Users] WITH CHECK ADD CONSTRAINT [FK_Users_Roles] FOREIGN KEY([RoleId])
REFERENCES [dbo].[Roles] ([RoleID])
GO
ALTER TABLE [dbo].[Users] CHECK CONSTRAINT [FK_Users_Roles]
GO

mehdin69
سه شنبه 07 آبان 1392, 13:26 عصر
دوست من اونطوری که شما طراحی کردید بیخیال اینکه مشتری یه کالا اضافه کنه
مشتری حتی اگه بخواد یه فیلد به کالاش هم اضافه کنه باید شما دیتابیس رو عوض کنین

RIG000
سه شنبه 07 آبان 1392, 13:39 عصر
واقعا لطف کردی

اوبالیت به بو
سه شنبه 07 آبان 1392, 21:26 عصر
درود بر شما


مغز من میگه کل دیتابیس شما مشکل اساسی داره چرا؟؟؟ اومدیم فردا طرف که سایت بهتون داده گفت گوشی موبایل هم توش باشه... می خواین یه جدول بسازین برا گوشی موبایل؟؟؟


حالا اومدیم قسمتی از سایت بود که می خواستند 2 محصول رو مقایسه کنند. ویژگی هایی هم مطرح هست. برای گوشی یک چیزی برای پرینتر چیز دیگری. قاعدتا باید یک جدول دیگه بسازند و هیچ ایرادی وارد نیست. اما اگر بخوان ساده و ابتدایی کار کنند و اطلاعات همگی به صورت عمومی باشه این کار صحیح است که همه فیلد ها رو (هم برای پرینتر هم لپ تاپ) یکسان بگیریم

morteza_1234m
سه شنبه 07 آبان 1392, 23:57 عصر
این کاری نداره شما می تونید که هر کدام از محصولات را با یک کد پیش شماره گذاری کنید در فیلد ای دی و یا هر فیلدی که از روی آن شناسایی رکورد ها را انجام می دهید (کلید )
مثلا شما در جدول مشخصات دانشجو شماره دانشجویی دارید آنهایی که با 274 شروع می شوند رشته کارشناسی کامپیوتر و انهایی که با 275 شروع می شوند حسایداری و ... هستند . یک چیز قراردادی می باشد این موضوع .

mehdin69
چهارشنبه 08 آبان 1392, 07:57 صبح
درود بر شما



حالا اومدیم قسمتی از سایت بود که می خواستند 2 محصول رو مقایسه کنند. ویژگی هایی هم مطرح هست. برای گوشی یک چیزی برای پرینتر چیز دیگری. قاعدتا باید یک جدول دیگه بسازند و هیچ ایرادی وارد نیست. اما اگر بخوان ساده و ابتدایی کار کنند و اطلاعات همگی به صورت عمومی باشه این کار صحیح است که همه فیلد ها رو (هم برای پرینتر هم لپ تاپ) یکسان بگیریم

بگذارن هیچ گونه مشکلی پیش نمیاد چرا که گروه کالا ها مشخص هستند و گروه هایی با هم مقایسه میشن که یکی باشن
خیلی گیر بازار باشه گروه هایی که برندشون هم یکی باشه میشه مقایسه کرد
شما در داینامیک بودن این دیتابیس ایرادی میبینین لطفاً بگید؟؟؟ هدف داینامیک کردن بوده ....

اوبالیت به بو
چهارشنبه 08 آبان 1392, 10:00 صبح
بگذارن هیچ گونه مشکلی پیش نمیاد چرا که گروه کالا ها مشخص هستند و گروه هایی با هم مقایسه میشن که یکی باشن
خیلی گیر بازار باشه گروه هایی که برندشون هم یکی باشه میشه مقایسه کرد
شما در داینامیک بودن این دیتابیس ایرادی میبینین لطفاً بگید؟؟؟ هدف داینامیک کردن بوده ....

خیر. از اول هم نبود.

FastCode
چهارشنبه 08 آبان 1392, 10:06 صبح
این کاری نداره شما می تونید که هر کدام از محصولات را با یک کد پیش شماره گذاری کنید در فیلد ای دی و یا هر فیلدی که از روی آن شناسایی رکورد ها را انجام می دهید (کلید )
مثلا شما در جدول مشخصات دانشجو شماره دانشجویی دارید آنهایی که با 274 شروع می شوند رشته کارشناسی کامپیوتر و انهایی که با 275 شروع می شوند حسایداری و ... هستند . یک چیز قراردادی می باشد این موضوع .
احتمالا شما یا استاد هستید یا حسابدار.چون هیچ کس اینطوری فکر نمیکنه.روش شما خیلی محدودیت داره.


برای این سوال یک تاپیک دیگه هم ایجاد شده.ای کاش مدیرها این دو تاپیک رو مرج کنند.

Mag-Mag
پنج شنبه 09 آبان 1392, 10:53 صبح
شما همه جدول هات خوبه
البته میشه بهتر کرد
اما خوبه
فقط جدول خرید ها رو اینطوری بگیر

CREATE TABLE [dbo].[tblFactor](
[FacId] [int] IDENTITY(1,1) NOT NULL,
[UserId] [int] NOT NULL,
[ProductId] [int] NOT NULL,
[ProductType] [varchar](50) NOT NULL,
[TotalCount] [nvarchar](10) NOT NULL,
[TotalPric] [nvarchar](20) NOT NULL,
[date] [datetime2](7) NOT NULL,
CONSTRAINT [PK_tblFactor] PRIMARY KEY CLUSTERED


یعنی وقتی labtop میخره type میشه labtop و productid میشه ایدی labtope
وقتی printer میخره type میشه printer و productid میشه ایدی printer

همین خوبه

FastCode
پنج شنبه 09 آبان 1392, 11:30 صبح
وقتی دو تا لپتاپ و یه پرینتر با هم میخره چیکار میکنی؟
یا مثلا وقتی که پولش رو با هم حساب میکنه؟
یا وقتی که اداره تعزیرات ازتون میپرسه مبلغ هر قلم جنس چقدره؟
یا اینکه چرا بعضی فاکتورها مبلغشون صفره؟و اگر جایزه هستن چرا فقط یک قلم کالا توشونه؟

Mag-Mag
پنج شنبه 09 آبان 1392, 11:59 صبح
وقتی دو تا لپتاپ و یه پرینتر با هم میخره چیکار میکنی؟
یا مثلا وقتی که پولش رو با هم حساب میکنه؟
یا وقتی که اداره تعزیرات ازتون میپرسه مبلغ هر قلم جنس چقدره؟
یا اینکه چرا بعضی فاکتورها مبلغشون صفره؟و اگر جایزه هستن چرا فقط یک قلم کالا توشونه؟

در تخلیلی که ما کردیم با ایجاد کننده پست قراره به ازای هر خرید یک رکورد در جدول خرید ها ثبت بشه
پس وقتی دوتا لب تاپ بخره دوتا رکورد اضافه میشه
و یک جدول دیگه هم به اسم سبد خرید هست که جزئیات خرید توی اون هست
مثلا از این محصول چنتا حریده و .....


ادامه بحث اینجاست (http://barnamenevis.org/showthread.php?425478-%D9%86%D8%AD%D9%88%D9%87-%DA%A9%D8%A7%D8%B1%DA%A9%D8%B1%D8%AF-%D8%B3%D8%A8%D8%AF-%D8%AE%D8%B1%DB%8C%D8%AF)