Физическое имя поля таблицы |
Название атрибута |
Тип поля |
Размер поля (байт) |
Инкриментность |
Ключ (уникальность) |
Необходимость заполнения (или значение по умолчанию) |
Id_zh |
Код жанра |
Int |
4 |
Да |
Да |
Да |
zhanr |
Жанр |
varchar |
25 |
Нет |
Нет |
Да |
Id_chel |
Код человека |
int |
4 |
Да |
Да |
Да |
name |
имя |
varchar |
20 |
Нет |
Нет |
Да |
fam |
фамилия |
varchar |
20 |
Нет |
Нет |
Да |
dr |
День рождения |
datetime |
8 |
Нет |
Нет |
Да |
Id_p |
Код песни |
int |
4 |
Да |
Да |
Да |
pesnya |
песня |
varchar |
100 |
Нет |
Нет |
Да |
Id_polz |
Код пользователя |
int |
4 |
Да |
Да |
Да |
name |
Имя польз |
varchar |
50 |
Нет |
Нет |
Да |
fam |
фамилия |
varchar |
50 |
Нет |
Нет |
Да |
dr |
Дата рождения |
datetime |
8 |
Нет |
Нет |
Да |
dp |
Дата заполнения |
datetime |
8 |
Нет |
Нет |
Да |
g |
группа |
varchar |
50 |
Нет |
Нет |
Да |
f |
факультет |
varchar |
50 |
Нет |
Нет |
Да |
v |
вуз |
varchar |
50 |
Нет |
Нет |
Да |
Login |
Логин |
varchar |
50 |
Нет |
Нет |
Да |
password |
Пароль |
varchar |
50 |
Нет |
Нет |
Да |
Id_p |
Код логина |
int |
4 |
Да |
Да |
Да |
3.3 Создание индексов
В данной базе данных лучше всего назначить индексы на таблицы, содержащие первичные ключи столбцов. Таким образом, намного увеличится скорость поиска этих данных и заметно упростится процесс поиска.
4. Организация бизнес логики на стороне сервера
4.1 Механизмы взаимодействия клиента с сервером.
При взаимодействии клиента с сервером производятся следующие действия:
§ ввод данных в базу;
§ модификация данных;
§ получение клиентом необходимой информации.
Для ввода данных в базу оператору придётся вручную вводить в клиентскую часть данные. Ключевые поля в базе данных заполняются инкриментно.
Для модификации данных базы оператору так же придётся ввести некоторые данные в клиентскую часть. Все необходимые недостающие данные берутся из самой базы (идентификаторы полей либо сами данные). Для добавления используются через встроенные объекты C++, при этом выполняется ряд процедур.
Для получения информации требуется задать только параметр поиска.
Эти действия целесообразно оформить в виде соответствующих хранимых процедур
4.2 Описание требуемых запросов. Оформление их в виде хранимых процедур и функций.
Необходимо найти по песни, группу и диск:
CREATE PROCEDURE poiskpesnya @p varchar(100) AS
select distinct pesnya, gruppa, [disk]
from poisk
where pesnya like @p+'%'
GO
Необходимо найти по группе, песню и диск:
CREATE PROCEDURE poiskgruppa @p varchar(100) AS
select distinct pesnya, gruppa, [disk]
from poisk
where gruppa Like @p+'%'
GO
Для получения id песни и занесения её в журнал pesn:
CREATE PROCEDURE dobidpes @p varchar(100) AS
declare @ident int, @ident1 varchar(150)
set nocount on
DECLARE a_cursor CURSOR FOR
select distinct id_p, pesnya
from k_pesnya
where @p=pesnya
delete from pesn
OPEN a_cursor
FETCH NEXT FROM a_cursor INTO @ident, @ident1
if(@ident=null)
begin
insert into pesn (identa) values (@ident+1)
end
if(@ident<>null)
begin
insert into pesn (identa) values (@ident)
end
DEALLOCATE a_cursor
GO
Для получения id группы и занесения её в журнал gr:
CREATE PROCEDURE dobidgr @p varchar(100) AS
declare @ident int, @pp varchar(50)
set nocount on
DECLARE a_cursor CURSOR FOR
select id_gr, gruppa from k_gruppi
where @p=gruppa
delete from gr
OPEN a_cursor
FETCH NEXT FROM a_cursor INTO @ident, @pp
if(@ident=null)
begin
insert into gr (identa) values (0)
end
if(@ident<>null)
begin
insert into gr (identa) values (@ident)
end
DEALLOCATE a_cursor
GO
Для получения id диска и занесения её в журнал dis:
CREATE PROCEDURE dobidds @p varchar(90) AS
declare @ident int, @pp varchar(90)
set nocount on
DECLARE a_cursor CURSOR FOR
select id_d, [disk] from k_disk
where @p=[disk]
delete from dis
OPEN a_cursor
FETCH NEXT FROM a_cursor INTO @ident, @pp
if(@ident=null)
begin
insert into dis (identa) values (0)
end
if(@ident<>null)
begin
insert into dis (identa) values (@ident)
end
DEALLOCATE a_cursor
GO
Нахождения стиля входящего в жанр:
CREATE PROCEDURE poiskst @p varchar(100) AS
select style, zhanr --distinct zh
from stzh
where @p=zhanr
GO
Для получения id диска и занесения её в журнал sts:
CREATE PROCEDURE styl @p varchar(50) AS
declare @ident int, @pp varchar(50)
set nocount on
DECLARE a_cursor CURSOR FOR
select id_st, style from k_style
where @p=style
delete from sts
OPEN a_cursor
FETCH NEXT FROM a_cursor INTO @ident, @pp
insert into sts (ident) values (@ident)
DEALLOCATE a_cursor
GO
При регистрации для получении id логина и хранения его в журнале pasw:
CREATE PROCEDURE idlog @p varchar(100) AS
declare @ident int, @ident1 varchar(150)
set nocount on
DECLARE a_cursor CURSOR FOR
select distinct id_p, login
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.