Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / Нужно объективное мнение на счет схемы БД! / 6 сообщений из 6, страница 1 из 1
02.02.2009, 19:36
    #35792400
snake00
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Нужно объективное мнение на счет схемы БД!
Хотелось бы узнать на счет правильности составленной схемы...
Вот как выглядит БД для тестирования студентов в SQL:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
70.
71.
72.
73.
74.
75.
76.
77.
78.
79.
80.
81.
82.
83.
84.
85.
86.
87.
88.
89.
90.
91.
92.
93.
94.
95.
96.
97.
98.
99.
100.
101.
102.
103.
104.
105.
106.
107.
108.
109.
110.
111.
112.
113.
114.
115.
116.
117.
118.
119.
120.
121.
122.
123.
124.
125.
126.
127.
128.
129.
130.
131.
132.
133.
134.
135.
136.
137.
138.
139.
140.
141.
142.
143.
144.
145.
146.
147.
148.
149.
150.
151.
152.
153.
154.
155.
156.
157.
158.
159.
160.
161.
162.
163.
164.
165.
166.
167.
168.
169.
170.
171.
172.
173.
174.
175.
176.
177.
178.
179.
180.
181.
182.
183.
184.
185.
186.
187.
188.
189.
190.
191.
192.
193.
194.
195.
196.
197.
198.
199.
200.
201.
202.
203.
204.
205.
206.
207.
208.
209.
210.
211.
212.
213.
214.
215.
216.
217.
218.
219.
220.
221.
222.
223.
224.
225.
226.
227.
228.
229.
230.
231.
232.
233.
234.
235.
236.
237.
238.
239.
240.
241.
242.
243.
244.
245.
246.
247.
248.
249.
250.
251.
252.
253.
CREATE DATABASE [MATXT]
LOG ON
  ( NAME = [MATXT_log],
    FILENAME = 'c:\Program Files\Microsoft SQL Server\MSSQL.1\MSSQL\DATA\MATXT_log.ldf',
    SIZE =  1  MB,
    MAXSIZE =  0  MB,
    FILEGROWTH =  10  % )
COLLATE Cyrillic_General_CI_AS
GO

USE [MATXT]
GO

CREATE TABLE [dbo].[ВАРИАНТЫ ОТВЕТОВ] (
  [ID] int IDENTITY( 1 ,  1 ) NOT NULL,
  [IDVoprosa] int NOT NULL,
  [Text] varchar( 2000 ) COLLATE Cyrillic_General_CI_AS NULL,
  [Image] nvarchar(max) COLLATE Cyrillic_General_CI_AS NULL,
  [Yes] bit CONSTRAINT [DF__ВАРИАНТЫ ОТ__Yes__300424B4] DEFAULT ( 0 ) NOT NULL
)
ON [PRIMARY]
GO

EXEC sp_addextendedproperty 'MS_Description', N'Ключевое поле', 'schema', 'dbo', 'table', 'ВАРИАНТЫ ОТВЕТОВ', 'column', 'ID'
GO

EXEC sp_addextendedproperty 'MS_Description', N'Внешний ключ для Вопроса', 'schema', 'dbo', 'table', 'ВАРИАНТЫ ОТВЕТОВ', 'column', 'IDVoprosa'
GO

EXEC sp_addextendedproperty 'MS_Description', N'Текст варианта ответа', 'schema', 'dbo', 'table', 'ВАРИАНТЫ ОТВЕТОВ', 'column', 'Text'
GO

EXEC sp_addextendedproperty 'MS_Description', N'Картинка', 'schema', 'dbo', 'table', 'ВАРИАНТЫ ОТВЕТОВ', 'column', 'Image'
GO

EXEC sp_addextendedproperty 'MS_Description', N'Правильность', 'schema', 'dbo', 'table', 'ВАРИАНТЫ ОТВЕТОВ', 'column', 'Yes'
GO

CREATE TABLE [dbo].[ВОПРОСЫ] (
  [ID] int IDENTITY( 1 ,  1 ) NOT NULL,
  [IDTheme] int NOT NULL,
  [Text] varchar(max) COLLATE Cyrillic_General_CI_AS NOT NULL,
  [image] nvarchar(max) COLLATE Cyrillic_General_CI_AS NULL
)
ON [PRIMARY]
GO


CREATE TABLE [dbo].[ГРУППЫ] (
  [id] int IDENTITY( 1 ,  1 ) NOT NULL,
  [gruppa] varchar( 10 ) COLLATE Cyrillic_General_CI_AS NOT NULL
)
ON [PRIMARY]
GO


CREATE TABLE [dbo].[ЗАДАННЫЕ ВОПРОСЫ] (
  [id] int IDENTITY( 1 ,  1 ) NOT NULL,
  [idKontrol_tochka] int NOT NULL,
  [idVoprosa] int NOT NULL,
  [PoryadkovyNomerVoprosaVTeste] int NOT NULL
)
ON [PRIMARY]
GO

CREATE TABLE [dbo].[КОНТРОЛЬНЫЕ ТОЧКИ] (
  [ID] int NOT NULL,
  [IDStudenta] int NOT NULL,
  [DataCdachi] int NOT NULL,
  [Ocenka] int NOT NULL
)
ON [PRIMARY]
GO


CREATE TABLE [dbo].[ОТВЕТЫ СТУДЕНТОВ] (
  [id] int IDENTITY( 1 ,  1 ) NOT NULL,
  [idZadannogoVoprosa] int NOT NULL,
  [idVariantaOtveta] int NOT NULL
)
ON [PRIMARY]
GO


CREATE TABLE [dbo].[СТУДЕНТЫ] (
  [ID] int IDENTITY( 1 ,  1 ) NOT NULL,
  [IDGruppa] int NOT NULL,
  [login] varchar( 12 ) COLLATE Cyrillic_General_CI_AS NULL,
  [pass] varchar( 12 ) COLLATE Cyrillic_General_CI_AS NULL,
  [fam] varchar( 32 ) COLLATE Cyrillic_General_CI_AS NULL,
  [im] varchar( 32 ) COLLATE Cyrillic_General_CI_AS NULL,
  [ot] varchar( 32 ) COLLATE Cyrillic_General_CI_AS NULL
)
ON [PRIMARY]
GO


CREATE TABLE [dbo].[ТЕМЫ] (
  [ID] int IDENTITY( 1 ,  1 ) NOT NULL,
  [Nazvanie] varchar( 100 ) COLLATE Cyrillic_General_CI_AS NOT NULL
)
ON [PRIMARY]
GO

ALTER TABLE [dbo].[ВАРИАНТЫ ОТВЕТОВ]
ADD PRIMARY KEY CLUSTERED ([ID])
WITH (
  PAD_INDEX = OFF,
  IGNORE_DUP_KEY = OFF,
  STATISTICS_NORECOMPUTE = OFF,
  ALLOW_ROW_LOCKS = ON,
  ALLOW_PAGE_LOCKS = ON)
ON [PRIMARY]
GO

ALTER TABLE [dbo].[ВОПРОСЫ]
ADD PRIMARY KEY CLUSTERED ([ID])
WITH (
  PAD_INDEX = OFF,
  IGNORE_DUP_KEY = OFF,
  STATISTICS_NORECOMPUTE = OFF,
  ALLOW_ROW_LOCKS = ON,
  ALLOW_PAGE_LOCKS = ON)
ON [PRIMARY]
GO

ALTER TABLE [dbo].[ГРУППЫ]
ADD CONSTRAINT [PK_Группы_] 
PRIMARY KEY CLUSTERED ([id])
WITH (
  PAD_INDEX = OFF,
  IGNORE_DUP_KEY = OFF,
  STATISTICS_NORECOMPUTE = OFF,
  ALLOW_ROW_LOCKS = ON,
  ALLOW_PAGE_LOCKS = ON)
ON [PRIMARY]
GO

ALTER TABLE [dbo].[ЗАДАННЫЕ ВОПРОСЫ]
ADD CONSTRAINT [PK_ЗАДАННЫЕ ВОПРОСЫ] 
PRIMARY KEY CLUSTERED ([id])
WITH (
  PAD_INDEX = OFF,
  IGNORE_DUP_KEY = OFF,
  STATISTICS_NORECOMPUTE = OFF,
  ALLOW_ROW_LOCKS = ON,
  ALLOW_PAGE_LOCKS = ON)
ON [PRIMARY]
GO

ALTER TABLE [dbo].[КОНТРОЛЬНЫЕ ТОЧКИ]
ADD CONSTRAINT [PK__РЕЗУЛЬТАТЫ ТЕСТИ__108B795B] 
PRIMARY KEY CLUSTERED ([ID])
WITH (
  PAD_INDEX = OFF,
  IGNORE_DUP_KEY = OFF,
  STATISTICS_NORECOMPUTE = OFF,
  ALLOW_ROW_LOCKS = ON,
  ALLOW_PAGE_LOCKS = ON)
ON [PRIMARY]
GO

ALTER TABLE [dbo].[ОТВЕТЫ СТУДЕНТОВ]
ADD CONSTRAINT [PK_ОТВЕТЫ СТУДЕНТОВ] 
PRIMARY KEY CLUSTERED ([id])
WITH (
  PAD_INDEX = OFF,
  IGNORE_DUP_KEY = OFF,
  STATISTICS_NORECOMPUTE = OFF,
  ALLOW_ROW_LOCKS = ON,
  ALLOW_PAGE_LOCKS = ON)
ON [PRIMARY]
GO

ALTER TABLE [dbo].[СТУДЕНТЫ]
ADD PRIMARY KEY CLUSTERED ([ID])
WITH (
  PAD_INDEX = OFF,
  IGNORE_DUP_KEY = OFF,
  STATISTICS_NORECOMPUTE = OFF,
  ALLOW_ROW_LOCKS = ON,
  ALLOW_PAGE_LOCKS = ON)
ON [PRIMARY]
GO

ALTER TABLE [dbo].[ТЕМЫ]
ADD CONSTRAINT [PK__ПРЕДМЕТЫ__1BFD2C07] 
PRIMARY KEY CLUSTERED ([ID])
WITH (
  PAD_INDEX = OFF,
  IGNORE_DUP_KEY = OFF,
  STATISTICS_NORECOMPUTE = OFF,
  ALLOW_ROW_LOCKS = ON,
  ALLOW_PAGE_LOCKS = ON)
ON [PRIMARY]
GO


ALTER TABLE [dbo].[ВАРИАНТЫ ОТВЕТОВ]
ADD CONSTRAINT [FK_ВАРИАНТЫ ОТВЕТОВ_ВОПРОСЫ] FOREIGN KEY ([IDVoprosa]) 
  REFERENCES [dbo].[ВОПРОСЫ] ([ID]) 
  ON UPDATE NO ACTION
  ON DELETE NO ACTION
GO

ALTER TABLE [dbo].[ВОПРОСЫ]
ADD CONSTRAINT [ВОПРОСЫ_fk] FOREIGN KEY ([IDTheme]) 
  REFERENCES [dbo].[ТЕМЫ] ([ID]) 
  ON UPDATE NO ACTION
  ON DELETE NO ACTION
GO

ALTER TABLE [dbo].[ЗАДАННЫЕ ВОПРОСЫ]
ADD CONSTRAINT [FK_ЗАДАННЫЕ ВОПРОСЫ_КОНТРОЛЬНЫЕ ТОЧКИ] FOREIGN KEY ([idKontrol_tochka]) 
  REFERENCES [dbo].[КОНТРОЛЬНЫЕ ТОЧКИ] ([ID]) 
  ON UPDATE NO ACTION
  ON DELETE NO ACTION
GO

ALTER TABLE [dbo].[КОНТРОЛЬНЫЕ ТОЧКИ]
ADD CONSTRAINT [FK_РЕЗУЛЬТАТЫ ТЕСТИРОВАНИЯ_ВАРИАНТЫ ОТВЕТОВ] FOREIGN KEY ([DataCdachi]) 
  REFERENCES [dbo].[ВАРИАНТЫ ОТВЕТОВ] ([ID]) 
  ON UPDATE NO ACTION
  ON DELETE NO ACTION
GO

ALTER TABLE [dbo].[КОНТРОЛЬНЫЕ ТОЧКИ]
ADD CONSTRAINT [РЕЗУЛЬТАТЫ ТЕСТИРОВАНИЯ_fk] FOREIGN KEY ([IDStudenta]) 
  REFERENCES [dbo].[СТУДЕНТЫ] ([ID]) 
  ON UPDATE NO ACTION
  ON DELETE NO ACTION
GO

ALTER TABLE [dbo].[ОТВЕТЫ СТУДЕНТОВ]
ADD CONSTRAINT [FK_ОТВЕТЫ СТУДЕНТОВ_ВАРИАНТЫ ОТВЕТОВ] FOREIGN KEY ([idVariantaOtveta]) 
  REFERENCES [dbo].[ВАРИАНТЫ ОТВЕТОВ] ([ID]) 
  ON UPDATE NO ACTION
  ON DELETE NO ACTION
GO

ALTER TABLE [dbo].[ОТВЕТЫ СТУДЕНТОВ]
ADD CONSTRAINT [FK_ОТВЕТЫ СТУДЕНТОВ_ЗАДАННЫЕ ВОПРОСЫ] FOREIGN KEY ([idVariantaOtveta]) 
  REFERENCES [dbo].[ЗАДАННЫЕ ВОПРОСЫ] ([id]) 
  ON UPDATE NO ACTION
  ON DELETE NO ACTION
GO

ALTER TABLE [dbo].[СТУДЕНТЫ]
ADD CONSTRAINT [FK_СТУДЕНТЫ_ГРУППЫ] FOREIGN KEY ([IDGruppa]) 
  REFERENCES [dbo].[ГРУППЫ] ([id]) 
  ON UPDATE NO ACTION
  ON DELETE NO ACTION
GO
...
Рейтинг: 0 / 0
02.02.2009, 19:43
    #35792410
Паганель
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Нужно объективное мнение на счет схемы БД!
Рекомендую обратиться в соответствующий форум: Проектирование БД
...
Рейтинг: 0 / 0
02.02.2009, 19:50
    #35792417
DeColo®es
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Нужно объективное мнение на счет схемы БД!
1) Объективного мнения быть не может.
Объективно - это работает/не работает.
А мнение всегды субъективно по своей сути.

2) Оценивать схему без более-менее подробной задачи почти бесмысленно.
(например, контрольные точки - шо за зверь? )

3) Избегайте русских имен таблиц.
И вообще, любых идентификаторов, которые приходится брать в [] или "" - намучаетесь. ;)

4) При создании констрейнов нужно задавать нормальные имена, а не "по умолчанию" типа PK__РЕЗУЛЬТАТЫ ТЕСТИ__108B795B

5) Смешение правил именования столбцов - где-то с большой буквы, где-то с маленькой (и прочее)

6) В форум по проектированию уже рекомендовали зайти.
На данном этапе оптимизация под конкретно MSSQL вряд ли остро необходима. :)

Модератор: Тема перенесена из форума "Microsoft SQL Server".
...
Рейтинг: 0 / 0
03.02.2009, 01:44
    #35792744
snake00
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Нужно объективное мнение на счет схемы БД!
DeColo®esнапример, контрольные точки - шо за зверь?
Это своего рода лог вариантов ответов студентов
...
Рейтинг: 0 / 0
03.02.2009, 02:28
    #35792750
Mainframe_старый
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Нужно объективное мнение на счет схемы БД!
Если это лабораторная работа или курсовая, то пойдет все, что угодно. Если это серьезная работа, то тут вообще обсуждать нечего.
...
Рейтинг: 0 / 0
19.02.2009, 13:23
    #35827114
vinger4
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Нужно объективное мнение на счет схемы БД!
А почему в "Контрольных точках" нет атрибута ИД варианта ответа? он ведь должен по ключу придти?
...
Рейтинг: 0 / 0
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / Нужно объективное мнение на счет схемы БД! / 6 сообщений из 6, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]