學生選課系統---資料庫課程設計SQL Server
阿新 • • 發佈:2019-01-02
可以直接從我的GitHub中獲取文件:
##學生選課系統GitHub
#一 題目
###學生選課系統
#二 需求分析
1.根據學生專業學年學期等資訊,錄入課程完成課程計劃
2.根據課程計劃,錄入任課教師資訊
3.學生可以根據學年學期等資訊,選擇課程完成選課要求
#三 結構概念設計
計劃受眾表資訊
學生表資訊
教師表資訊
課程表資訊
教學計劃表資訊
任課表資訊
學生選課表資訊
#四 ER圖(基於三級正規化)
##這裡我遇到一個問題如何設計ER圖 和如何根據ER圖設計關係邏輯呢?
##資料庫設計方法
看了以上這篇 收益很多 可以參考下
#五 資料字典
####Stdunt表(學生表)
欄位名 資料型別 長度 約束 描述 Student_id Nvar char 50 主鍵 學生學號 Gender Nvarchar 50 無 性別 Name Nvarchar 50 無 學生名字 category Nvarchar 50 無 種類
####Course表(課程表)
欄位名 資料型別 長度 約束 描述 course_id Nvar char 50 主鍵 課程號 Name Nvarchar 50 唯一鍵 課程名 mode Nvarchar 50 無 考核方式 Credit Int 無 學分
####each表(教師任課表)
欄位名 資料型別 長度 約束 描述
Teach_id Nvarchar 50 主鍵 任課號
Plan_id Nvarchar 50 外來鍵,組合唯一鍵 教學計劃號
Teacher_id Nvarchar 50 外來鍵,組合唯一鍵 教師編號
####Teacher表(教師表)
欄位名 資料型別 長度 約束 描述
Teacher_id Nvarchar 50 主鍵 教師編號
Name Nvarchar 50 無 教師名
Gender Nvarchar 50
Student_select表(學生選課表)
欄位名 資料型別 長度 約束 描述 Select_id Nvarchar 50 主鍵 選課號 Student_id Nvarchar 50 外來鍵,組合主鍵 學生編號 Teach_id Nvarchar 50 外來鍵,組合主鍵 排課編號
####Administrator表
欄位名 資料型別 長度 約束 描述
administrator Nvarchar 50 管理員號
password Nvarchar 50 密碼
####Plan表(教學計劃表)
欄位名 資料型別 長度 約束 描述
plan_id nvarchar 50 組合主鍵 教學計劃號
audience_id nvarchar 50 外來鍵,聯合主鍵 計劃受眾號
course_id nvarchar 50 外來鍵,聯合主鍵 課程號
####audience表(計劃受眾表)
欄位名 資料型別 長度 約束 描述
auience_id nvarchar 50 主鍵約束 計劃受眾id
academy nvarchar 50 無 學院
major nvarchar 50 無 專業
grade nvarchar 50 無 年級
semester Int 無 學期
#六 資料庫定義語句
CREATE DATABASE [Student_Select]
GO
USE [Student_Select]
GO
/****** Object: Table [dbo].[Teacher] Script Date: 06/27/2018 10:37:01 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[Teacher](
[teacher_id] [nvarchar](50) NOT NULL,
[name] [nvarchar](50) NULL,
[gender] [nchar](10) NULL,
CONSTRAINT [PK_Teacher] PRIMARY KEY CLUSTERED
(
[teacher_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]
GO
INSERT [dbo].[Teacher] ([teacher_id], [name], [gender]) VALUES (N'1', N'1', N'1 ')
INSERT [dbo].[Teacher] ([teacher_id], [name], [gender]) VALUES (N'2', N'2', N'2 ')
/****** Object: Table [dbo].[Course] Script Date: 06/27/2018 10:37:01 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[Course](
[course_id] [nvarchar](50) NOT NULL,
[name] [nvarchar](50) NULL,
[mode] [nvarchar](50) NOT NULL,
[credit] [nvarchar](50) NULL,
CONSTRAINT [PK_Course] PRIMARY KEY CLUSTERED
(
[course_id] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY],
CONSTRAINT [IX_Course] UNIQUE NONCLUSTERED
(
[name] 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
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'考核方式' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'Course', @level2type=N'COLUMN',@level2name=N'mode'
GO
INSERT [dbo].[Course] ([course_id], [name], [mode], [credit]) VALUES (N'1', N'1', N'1', N'1')
INSERT [dbo].[Course] ([course_id], [name], [mode], [credit]) VALUES (N'2', N'2', N'2', N'2')
/****** Object: Table [dbo].[audience] Script Date: 06/27/2018 10:37:01 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[audience](
[audience_id] [nvarchar](50) NOT NULL,
[academy] [nvarchar](50) NULL,
[major] [nvarchar](50) NULL,
[grade] [nvarchar](50) NULL,
[semester] [int] NULL,
CONSTRAINT [PK_audience] PRIMARY KEY CLUSTERED
(
[audience_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]
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'受眾ID' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'audience', @level2type=N'COLUMN',@level2name=N'audience_id'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'學院' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'audience', @level2type=N'COLUMN',@level2name=N'academy'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'年級' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'audience', @level2type=N'COLUMN',@level2name=N'grade'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'學期' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'audience', @level2type=N'COLUMN',@level2name=N'semester'
GO
INSERT [dbo].[audience] ([audience_id], [academy], [major], [grade], [semester]) VALUES (N'1', N'1', N'1', N'1', 1)
INSERT [dbo].[audience] ([audience_id], [academy], [major], [grade], [semester]) VALUES (N'2', N'2', N'2', N'2', 2)
/****** Object: Table [dbo].[Administrator] Script Date: 06/27/2018 10:37:01 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[Administrator](
[administrator] [nvarchar](50) NULL,
[password] [nvarchar](50) NULL
) ON [PRIMARY]
GO
/****** Object: Table [dbo].[Student] Script Date: 06/27/2018 10:37:01 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[Student](
[student_id] [nvarchar](50) NOT NULL,
[gender] [nchar](10) NULL,
[name] [nvarchar](50) NULL,
[category] [nvarchar](50) NOT NULL,
CONSTRAINT [PK_Student] PRIMARY KEY CLUSTERED
(
[student_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]
GO
INSERT [dbo].[Student] ([student_id], [gender], [name], [category]) VALUES (N'1', N'1 ', N'1', N'1')
INSERT [dbo].[Student] ([student_id], [gender], [name], [category]) VALUES (N'2', N'2 ', N'2', N'2')
/****** Object: Table [dbo].[Plan] Script Date: 06/27/2018 10:37:01 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[Plan](
[plan_id] [nvarchar](50) NOT NULL,
[audience_id] [nvarchar](50) NOT NULL,
[course_id] [nvarchar](50) NOT NULL,
CONSTRAINT [PK_Plan] PRIMARY KEY CLUSTERED
(
[plan_id] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY],
CONSTRAINT [IX_Plan] UNIQUE NONCLUSTERED
(
[audience_id] ASC,
[course_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]
GO
INSERT [dbo].[Plan] ([plan_id], [audience_id], [course_id]) VALUES (N'1', N'1', N'1')
INSERT [dbo].[Plan] ([plan_id], [audience_id], [course_id]) VALUES (N'2', N'2', N'2')
/****** Object: Table [dbo].[Teach] Script Date: 06/27/2018 10:37:01 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[Teach](
[teach_id] [nvarchar](50) NOT NULL,
[plan_id] [nvarchar](50) NULL,
[teacher_id] [nvarchar](50) NULL,
CONSTRAINT [PK_Teach] PRIMARY KEY CLUSTERED
(
[teach_id] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY],
CONSTRAINT [IX_Teach_1] UNIQUE NONCLUSTERED
(
[teach_id] ASC,
[plan_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]
GO
INSERT [dbo].[Teach] ([teach_id], [plan_id], [teacher_id]) VALUES (N'1', N'1', N'1')
INSERT [dbo].[Teach] ([teach_id], [plan_id], [teacher_id]) VALUES (N'2', N'2', N'2')
/****** Object: Table [dbo].[Student_Selete] Script Date: 06/27/2018 10:37:01 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[Student_Selete](
[selete_id] [nvarchar](50) NOT NULL,
[student_id] [nvarchar](50) NOT NULL,
[teach_id] [nvarchar](50) NOT NULL,
CONSTRAINT [PK_Student_Selete] PRIMARY KEY CLUSTERED
(
[selete_id] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY],
CONSTRAINT [IX_Student_Selete_1] UNIQUE NONCLUSTERED
(
[student_id] ASC,
[teach_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]
GO
/****** Object: ForeignKey [audience_id] Script Date: 06/27/2018 10:37:01 ******/
ALTER TABLE [dbo].[Plan] WITH CHECK ADD CONSTRAINT [audience_id] FOREIGN KEY([audience_id])
REFERENCES [dbo].[audience] ([audience_id])
GO
ALTER TABLE [dbo].[Plan] CHECK CONSTRAINT [audience_id]
GO
/****** Object: ForeignKey [course_id] Script Date: 06/27/2018 10:37:01 ******/
ALTER TABLE [dbo].[Plan] WITH CHECK ADD CONSTRAINT [course_id] FOREIGN KEY([course_id])
REFERENCES [dbo].[Course] ([course_id])
GO
ALTER TABLE [dbo].[Plan] CHECK CONSTRAINT [course_id]
GO
/****** Object: ForeignKey [plan_id] Script Date: 06/27/2018 10:37:01 ******/
ALTER TABLE [dbo].[Teach] WITH CHECK ADD CONSTRAINT [plan_id] FOREIGN KEY([plan_id])
REFERENCES [dbo].[Plan] ([plan_id])
GO
ALTER TABLE [dbo].[Teach] CHECK CONSTRAINT [plan_id]
GO
/****** Object: ForeignKey [teacher_id] Script Date: 06/27/2018 10:37:01 ******/
ALTER TABLE [dbo].[Teach] WITH CHECK ADD CONSTRAINT [teacher_id] FOREIGN KEY([teacher_id])
REFERENCES [dbo].[Teacher] ([teacher_id])
GO
ALTER TABLE [dbo].[Teach] CHECK CONSTRAINT [teacher_id]
GO
/****** Object: ForeignKey [student_zhujian] Script Date: 06/27/2018 10:37:01 ******/
ALTER TABLE [dbo].[Student_Selete] WITH CHECK ADD CONSTRAINT [student_zhujian] FOREIGN KEY([student_id])
REFERENCES [dbo].[Student] ([student_id])
GO
ALTER TABLE [dbo].[Student_Selete] CHECK CONSTRAINT [student_zhujian]
GO
/****** Object: ForeignKey [teach_zhujian] Script Date: 06/27/2018 10:37:01 ******/
ALTER TABLE [dbo].[Student_Selete] WITH CHECK ADD CONSTRAINT [teach_zhujian] FOREIGN KEY([teach_id])
REFERENCES [dbo].[Teach] ([teach_id])
GO
ALTER TABLE [dbo].[Student_Selete] CHECK CONSTRAINT [teach_zhujian]
GO
#七 資料庫關係圖
##最後貼一下朋友的資料庫ER圖和邏輯設計,是倉庫管理系統,我覺得也可以參考:
#ER圖:
##邏輯圖: