Информационная система "Корпоративный сайт Главного федерального инспектора по Удмуртской Республике. Подсистема управления данными"
Основные технические решения проекта создания информационной системы целью оповещение населения актуальной информации (новости, указы, законы). Описание алгоритма обработки запросов, добавления и удаления информации в базу данных, ее обновление.
Рубрика | Программирование, компьютеры и кибернетика |
Вид | дипломная работа |
Язык | русский |
Дата добавления | 06.04.2013 |
Размер файла | 3,9 M |
Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже
Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.
RETURNS integer AS
$BODY$
DECLARE
t_page_id integer;
BEGIN
t_page_id:=page_add();
INSERT INTO menu_top (id_sub_menu,id_page,menu_top_name,menu_alt,menu_url)
VALUES (a_menu_id,t_page_id,a_menu_name,a_menu_alt,a_menu_url);
RETURN t_page_id;
EXCEPTION
WHEN foreign_key_violation THEN RETURN -1;
WHEN not_null_violation THEN RETURN -2;
WHEN unique_violation THEN RETURN -3;
WHEN check_violation THEN RETURN -4;
END
$BODY$
LANGUAGE 'plpgsql' VOLATILE
COST 100;
ALTER FUNCTION menu_top_add(integer, character varying, text, text) OWNER TO postgres;
CREATE OR REPLACE FUNCTION menu_top_add(_menu_id integer, _menu_name character varying, _menu_alt text, _menu_url text, _menu_top_image text)
RETURNS integer AS
$BODY$
DECLARE
t_page_id integer;
BEGIN
t_page_id := page_add(NULL,_menu_name);
INSERT INTO menu_top (id_sub_menu, id_page, menu_top_name, menu_alt, menu_url, menu_top_image)
VALUES (_menu_id, t_page_id, _menu_name, _menu_alt, _menu_url, _menu_top_image);
RETURN t_page_id;
EXCEPTION
WHEN foreign_key_violation THEN RETURN -1;
WHEN not_null_violation THEN RETURN -2;
WHEN unique_violation THEN RETURN -3;
WHEN check_violation THEN RETURN -4;
END
$BODY$
LANGUAGE 'plpgsql' VOLATILE
COST 100;
ALTER FUNCTION menu_top_add(integer, character varying, text, text, text) OWNER TO fobos;
CREATE OR REPLACE FUNCTION menu_top_delete(d_menu_top_id integer)
RETURNS integer AS
$BODY$
DECLARE
t_page_id integer;
BEGIN
SELECT id_page INTO t_page_id FROM menu_top WHERE id_menu_top = d_menu_top_id;
DELETE FROM menu_top WHERE id_menu_top = d_menu_top_id;
DELETE FROM page WHERE id_page = t_page_id;
RETURN 1;
END
$BODY$
LANGUAGE 'plpgsql' VOLATILE
COST 100;
ALTER FUNCTION menu_top_delete(integer) OWNER TO postgres;
CREATE OR REPLACE FUNCTION menu_top_get()
RETURNS SETOF menu_top AS
$BODY$
BEGIN
RETURN QUERY (
SELECT *
FROM menu_top
ORDER BY id_sub_menu ASC, menu_top_name ASC
);
END
$BODY$
LANGUAGE 'plpgsql' VOLATILE
COST 100
ROWS 1000;
ALTER FUNCTION menu_top_get() OWNER TO postgres;
CREATE OR REPLACE FUNCTION menu_top_get_id_page(d_menu_top_id integer)
RETURNS integer AS
$BODY$
DECLARE
t_page_id integer;
t_page_id2 integer;
BEGIN
SELECT id_page INTO t_page_id FROM menu_top WHERE id_menu_top = d_menu_top_id;
IF t_page_id is NULL THEN
t_page_id2:=page_add();
UPDATE menu_top SET id_page = t_page_id2 WHERE id_menu_top = d_menu_top_id;
RETURN t_page_id2;
ELSE
RETURN t_page_id;
END IF;
END
$BODY$
LANGUAGE 'plpgsql' VOLATILE
COST 100;
ALTER FUNCTION menu_top_get_id_page(integer) OWNER TO postgres;
CREATE OR REPLACE FUNCTION menu_top_get_one_cascade()
RETURNS SETOF menu_top AS
$BODY$
BEGIN
RETURN QUERY (
SELECT *
FROM menu_top
WHERE id_sub_menu IS NULL
ORDER BY id_sub_menu ASC, menu_top_name ASC
);
END
$BODY$
LANGUAGE 'plpgsql' VOLATILE
COST 100
ROWS 1000;
ALTER FUNCTION menu_top_get_one_cascade() OWNER TO postgres;
CREATE OR REPLACE FUNCTION menu_top_get_two_cascade(s_menu_id integer)
RETURNS SETOF menu_top AS
$BODY$
BEGIN
RETURN QUERY (
SELECT *
FROM menu_top
WHERE id_sub_menu IS NOT NULL AND id_sub_menu = s_menu_id
ORDER BY id_sub_menu ASC, menu_top_name ASC
);
END
$BODY$
LANGUAGE 'plpgsql' VOLATILE
COST 100
ROWS 1000;
ALTER FUNCTION menu_top_get_two_cascade(integer) OWNER TO postgres;
CREATE OR REPLACE FUNCTION name_menu_get_by_id_page(id_page integer)
RETURNS SETOF character varying AS
$BODY$
BEGIN
RETURN QUERY (
(SELECT m.menu_name
FROM menu m
WHERE m.id_page = id_page
UNION
SELECT mt.menu_top_name
FROM menu_top mt
WHERE mt.id_page = id_page
)
);
END
$BODY$
LANGUAGE 'plpgsql' VOLATILE
COST 100
ROWS 1000;
ALTER FUNCTION name_menu_get_by_id_page(integer) OWNER TO postgres;
CREATE OR REPLACE FUNCTION news_add(a_id_page integer, a_news_theme character varying, a_text_html text)
RETURNS integer AS
$BODY$
BEGIN
INSERT INTO news (id_page, theme, text_html)
VALUES (a_id_page, a_news_theme, a_text_html);
RETURN currval ('news_id_news_seq');
EXCEPTION
WHEN foreign_key_violation THEN RETURN -1;
WHEN not_null_violation THEN RETURN -2;
WHEN unique_violation THEN RETURN -3;
WHEN check_violation THEN RETURN -4;
END
$BODY$
LANGUAGE 'plpgsql' VOLATILE
COST 100;
ALTER FUNCTION news_add(integer, character varying, text) OWNER TO postgres;
CREATE OR REPLACE FUNCTION news_delete(d_id_news integer)
RETURNS SETOF news_image AS
$BODY$
BEGIN
RETURN QUERY (
SELECT *
FROM news_image
WHERE id_news = d_id_news
);
DELETE FROM news
WHERE id_news = d_id_news;
END
$BODY$
LANGUAGE 'plpgsql' VOLATILE
COST 100
ROWS 1000;
ALTER FUNCTION news_delete(integer) OWNER TO postgres;
CREATE OR REPLACE FUNCTION news_fts_search(_text text)
RETURNS SETOF news AS
$BODY$
BEGIN
RETURN QUERY
SELECT n.*
FROM
news n JOIN news_fts nf
USING (id_news)
WHERE nf.news_fts @@ plainto_tsquery('russian', _text)
ORDER BY
ts_rank_cd (nf.news_fts, plainto_tsquery('russian', _text), 32) DESC;
END
$BODY$
LANGUAGE 'plpgsql' VOLATILE
COST 100
ROWS 1000;
ALTER FUNCTION news_fts_search(text) OWNER TO postgres;
CREATE OR REPLACE FUNCTION news_get(id_page integer, lim integer, ofs integer)
RETURNS SETOF news AS
$BODY$
BEGIN
RETURN QUERY (
SELECT *
FROM news n
WHERE n.id_page = id_page
ORDER BY n.date_add DESC, n.id_news DESC
LIMIT lim OFFSET ofs
);
END
$BODY$
LANGUAGE 'plpgsql' VOLATILE
COST 100
ROWS 1000;
ALTER FUNCTION news_get(integer, integer, integer) OWNER TO postgres;
CREATE OR REPLACE FUNCTION news_get_by_id_news(id_news integer)
RETURNS news AS
$BODY$
DECLARE
ret news%ROWTYPE;
BEGIN
SELECT INTO ret n.*
FROM news n
WHERE n.id_news = id_news;
RETURN ret;
END
$BODY$
LANGUAGE 'plpgsql' VOLATILE
COST 100;
ALTER FUNCTION news_get_by_id_news(integer) OWNER TO postgres;
CREATE OR REPLACE FUNCTION news_get_count(id_page integer)
RETURNS integer AS
$BODY$
BEGIN
RETURN (
SELECT COUNT(*)
FROM news n
WHERE n.id_page = id_page
);
END
$BODY$
LANGUAGE 'plpgsql' VOLATILE
COST 100;
ALTER FUNCTION news_get_count(integer) OWNER TO postgres;
CREATE OR REPLACE FUNCTION news_get_date(id_page integer, _date_add date, lim integer, ofs integer)
RETURNS SETOF news AS
$BODY$
BEGIN
RETURN QUERY (
SELECT *
FROM news n
WHERE
n.id_page = id_page AND
n.date_add <= _date_add
ORDER BY n.date_add DESC, n.id_news DESC
LIMIT lim OFFSET ofs
);
END
$BODY$
LANGUAGE 'plpgsql' VOLATILE
COST 100
ROWS 1000;
ALTER FUNCTION news_get_date(integer, date, integer, integer) OWNER TO postgres;
CREATE OR REPLACE FUNCTION news_get_date_count(_id_page integer, _date_add date)
RETURNS integer AS
$BODY$
BEGIN
RETURN (
SELECT COUNT(*)
FROM news n
WHERE n.id_page = _id_page AND
n.date_add <= _date_add
);
END
$BODY$
LANGUAGE 'plpgsql' VOLATILE
COST 100;
ALTER FUNCTION news_get_date_count(integer, date) OWNER TO postgres;
CREATE OR REPLACE FUNCTION news_image_add(a_id_news integer, a_file text, a_sub_title text)
RETURNS integer AS
$BODY$
BEGIN
INSERT INTO news_image (id_news, file, sub_title)
VALUES (a_id_news, a_file, a_sub_title);
RETURN currval ('news_image_id_news_image_seq');
EXCEPTION
WHEN foreign_key_violation THEN RETURN -1;
WHEN not_null_violation THEN RETURN -2;
WHEN unique_violation THEN RETURN -3;
WHEN check_violation THEN RETURN -4;
END
$BODY$
LANGUAGE 'plpgsql' VOLATILE
COST 100;
ALTER FUNCTION news_image_add(integer, text, text) OWNER TO postgres;
CREATE OR REPLACE FUNCTION news_image_add(a_id_news integer, a_file text)
RETURNS integer AS
$BODY$
BEGIN
INSERT INTO news_image (id_news, file)
VALUES (a_id_news, a_file);
RETURN currval ('news_image_id_news_image_seq');
EXCEPTION
WHEN foreign_key_violation THEN RETURN -1;
WHEN not_null_violation THEN RETURN -2;
WHEN unique_violation THEN RETURN -3;
WHEN check_violation THEN RETURN -4;
END
$BODY$
LANGUAGE 'plpgsql' VOLATILE
COST 100;
ALTER FUNCTION news_image_add(integer, text) OWNER TO fobos;
CREATE OR REPLACE FUNCTION news_image_delete(d_id_news_image integer)
RETURNS news_image AS
$BODY$
DECLARE
ret news_image%ROWTYPE;
BEGIN
SELECT INTO ret ni.*
FROM news_image ni
WHERE ni.id_news_image = d_id_news_image;
DELETE FROM news_image
WHERE id_news_image = d_id_news_image;
RETURN ret;
END
$BODY$
LANGUAGE 'plpgsql' VOLATILE
COST 100;
ALTER FUNCTION news_image_delete(integer) OWNER TO postgres;
CREATE OR REPLACE FUNCTION news_image_get(id_news integer)
RETURNS SETOF news_image AS
$BODY$
BEGIN
RETURN QUERY (
SELECT *
FROM news_image ni
WHERE ni.id_news = id_news
);
END
$BODY$
LANGUAGE 'plpgsql' VOLATILE
COST 100
ROWS 1000;
ALTER FUNCTION news_image_get(integer) OWNER TO postgres;
CREATE OR REPLACE FUNCTION news_update(u_id_news integer, u_date_add date, u_theme character varying, u_text_html text)
RETURNS integer AS
$BODY$
BEGIN
UPDATE news
SET date_add = u_date_add, theme = u_theme, text_html = u_text_html
WHERE id_news = u_id_news;
RETURN 1;
EXCEPTION
WHEN foreign_key_violation THEN RETURN -1;
WHEN not_null_violation THEN RETURN -2;
WHEN unique_violation THEN RETURN -3;
WHEN check_violation THEN RETURN -4;
END
$BODY$
LANGUAGE 'plpgsql' VOLATILE
COST 100;
ALTER FUNCTION news_update(integer, date, character varying, text) OWNER TO postgres;
CREATE OR REPLACE FUNCTION page_add()
RETURNS integer AS
$BODY$
BEGIN
INSERT INTO page (news_bit, block_bit, plane_bit,quest_bit, count_view)
VALUES (B'0',B'0',B'0',B'0',0);
RETURN currval ('page_id_page_seq');
END
$BODY$
LANGUAGE 'plpgsql' VOLATILE
COST 100;
ALTER FUNCTION page_add() OWNER TO postgres;
CREATE OR REPLACE FUNCTION page_add(_id_page integer, _page_name text)
RETURNS integer AS
$BODY$
BEGIN
INSERT INTO page (news_bit, block_bit, plane_bit,quest_bit, count_view, id_sub_page, page_name)
VALUES (B'0',B'0',B'0',B'0',0, _id_page, _page_name);
RETURN currval ('page_id_page_seq');
END
$BODY$
LANGUAGE 'plpgsql' VOLATILE
COST 100;
ALTER FUNCTION page_add(integer, text) OWNER TO fobos;
CREATE OR REPLACE FUNCTION page_delete(_id_page integer)
RETURNS integer AS
$BODY$
BEGIN
DELETE FROM page
WHERE id_page = _id_page;
IF FOUND THEN
RETURN 1;
END IF;
RETURN 0;
END
$BODY$
LANGUAGE 'plpgsql' VOLATILE
COST 100;
ALTER FUNCTION page_delete(integer) OWNER TO fobos;
CREATE OR REPLACE FUNCTION page_get(id_page integer)
RETURNS page AS
$BODY$
DECLARE
ret page%ROWTYPE;
BEGIN
SELECT INTO ret p.*
FROM page p
WHERE p.id_page = id_page;
UPDATE page
SET count_view = count_view + 1
WHERE id_page = ret.id_page;
RETURN ret;
END
$BODY$
LANGUAGE 'plpgsql' VOLATILE
COST 100;
ALTER FUNCTION page_get(integer) OWNER TO postgres;
CREATE OR REPLACE FUNCTION page_get_all()
RETURNS SETOF act_page AS
$BODY$
BEGIN
RETURN QUERY (
(
(SELECT p.id_page, mt.menu_top_name, p.page_content, p.php_file, p.news_bit, p.block_bit, p.plane_bit, p.quest_bit
FROM
page p JOIN menu_top mt
USING (id_page)
)
UNION ALL
(
SELECT p.id_page, m.menu_name, p.page_content, p.php_file, p.news_bit, p.block_bit, p.plane_bit, p.quest_bit
FROM
page p JOIN menu m
USING (id_page)
)
) ORDER BY id_page
);
END
$BODY$
LANGUAGE 'plpgsql' VOLATILE
COST 100
ROWS 1000;
ALTER FUNCTION page_get_all() OWNER TO postgres;
CREATE OR REPLACE FUNCTION page_get_parent(_id_page integer)
RETURNS SETOF page AS
$BODY$
BEGIN
RETURN QUERY(
SELECT *
FROM page p
WHERE p.id_page = ANY (
SELECT pp.id_sub_page
FROM page pp
WHERE pp.id_page = _id_page
)
);
END
$BODY$
LANGUAGE 'plpgsql' VOLATILE
COST 100
ROWS 1000;
ALTER FUNCTION page_get_parent(integer) OWNER TO fobos;
CREATE OR REPLACE FUNCTION page_get_sub_page(_id_page integer)
RETURNS SETOF page AS
$BODY$
BEGIN
RETURN QUERY
SELECT * FROM page
WHERE id_sub_page = _id_page;
END
$BODY$
LANGUAGE 'plpgsql' VOLATILE
COST 100
ROWS 1000;
ALTER FUNCTION page_get_sub_page(integer) OWNER TO postgres;
CREATE OR REPLACE FUNCTION page_get_sub_page_news(IN _id_menu_top integer, IN _menu_top_name character varying, IN _id_page integer, IN _id_sub_page integer, IN _page_name text, IN _checked integer)
RETURNS SETOF record AS
$BODY$
BEGIN
RETURN QUERY (
SELECT mt.id_menu_top, mt.menu_top_name, pp.id_page, pp.id_sub_page, pp.page_name, mp.id_page
FROM
menu_top mt LEFT JOIN page p
USING (id_page)
LEFT JOIN (
SELECT *
FROM page
WHERE news_bit = '1'
) pp
ON p.id_page = pp.id_sub_page
LEFT JOIN main_page mp
USING (id_menu_top)
);
END
$BODY$
LANGUAGE 'plpgsql' VOLATILE
COST 100
ROWS 1000;
ALTER FUNCTION page_get_sub_page_news(integer, character varying, integer, integer, text, integer) OWNER TO postgres;
CREATE OR REPLACE FUNCTION page_quest_bit_update(u_id_page integer)
RETURNS void AS
$BODY$
DECLARE
q_bit bit;
BEGIN
SELECT INTO q_bit p.quest_bit
FROM page p
WHERE p.id_page = u_id_page;
IF q_bit = '1' THEN
UPDATE page
SET quest_bit = '0'
WHERE id_page = u_id_page;
ELSE
UPDATE page
SET quest_bit = '1'
WHERE id_page = u_id_page;
END IF;
END
$BODY$
LANGUAGE 'plpgsql' VOLATILE
COST 100;
ALTER FUNCTION page_quest_bit_update(integer) OWNER TO postgres;
CREATE OR REPLACE FUNCTION plane_add(a_id_page integer, a_section integer, a_year integer, a_date_add date, a_date_eqv date, a_date_end date, a_task_text text, a_comment text)
RETURNS integer AS
$BODY$
BEGIN
INSERT INTO plane (id_page, section, year, date_add, date_eqv, date_end, task_text, comment)
VALUES (a_id_page, a_section, a_year, a_date_add, a_date_eqv, a_date_end, a_task_text, a_comment);
RETURN currval ('plane_id_plane_seq');
EXCEPTION
WHEN foreign_key_violation THEN RETURN -1;
WHEN not_null_violation THEN RETURN -2;
WHEN unique_violation THEN RETURN -3;
WHEN check_violation THEN RETURN -4;
END
$BODY$
LANGUAGE 'plpgsql' VOLATILE
COST 100;
ALTER FUNCTION plane_add(integer, integer, integer, date, date, date, text, text) OWNER TO postgres;
CREATE OR REPLACE FUNCTION plane_delete(d_id_plane integer)
RETURNS SETOF plane_image AS
$BODY$
BEGIN
RETURN QUERY (
SELECT *
FROM plane_image
WHERE id_plane = d_id_plane
);
DELETE FROM plane
WHERE id_plane = d_id_plane;
END
$BODY$
LANGUAGE 'plpgsql' VOLATILE
COST 100
ROWS 1000;
ALTER FUNCTION plane_delete(integer) OWNER TO postgres;
CREATE OR REPLACE FUNCTION plane_get(id_page integer, section integer, "year" integer)
RETURNS SETOF plane AS
$BODY$
BEGIN
RETURN QUERY (
SELECT *
FROM plane p
WHERE
p.id_page = id_page AND
p.year = year AND
p.section = section
ORDER BY p.date_add DESC
);
END
$BODY$
LANGUAGE 'plpgsql' VOLATILE
COST 100
ROWS 1000;
ALTER FUNCTION plane_get(integer, integer, integer) OWNER TO postgres;
CREATE OR REPLACE FUNCTION plane_get_by_id_plane(id_plane integer)
RETURNS plane AS
$BODY$
DECLARE
ret plane%ROWTYPE;
BEGIN
SELECT INTO ret p.*
FROM plane p
WHERE p.id_plane = id_plane;
RETURN ret;
END
$BODY$
LANGUAGE 'plpgsql' VOLATILE
COST 100;
ALTER FUNCTION plane_get_by_id_plane(integer) OWNER TO postgres;
CREATE OR REPLACE FUNCTION plane_get_section(id_page integer)
RETURNS SETOF act_plane AS
$BODY$
BEGIN
RETURN QUERY (
SELECT DISTINCT p.section, p.year
FROM plane p
WHERE p.id_page = id_page
ORDER BY p.year DESC, p.section DESC
);
END
$BODY$
LANGUAGE 'plpgsql' VOLATILE
COST 100
ROWS 1000;
ALTER FUNCTION plane_get_section(integer) OWNER TO postgres;
CREATE OR REPLACE FUNCTION plane_image_add(a_id_plane integer, a_file text)
RETURNS integer AS
$BODY$
BEGIN
INSERT INTO plane_image (id_plane, file)
VALUES (a_id_plane, a_file);
RETURN currval ('plane_image_id_plane_image_seq');
EXCEPTION
WHEN foreign_key_violation THEN RETURN -1;
WHEN not_null_violation THEN RETURN -2;
WHEN unique_violation THEN RETURN -3;
WHEN check_violation THEN RETURN -4;
END
$BODY$
LANGUAGE 'plpgsql' VOLATILE
COST 100;
ALTER FUNCTION plane_image_add(integer, text) OWNER TO postgres;
CREATE OR REPLACE FUNCTION plane_image_delete(d_id_plane_image integer)
RETURNS plane_image AS
$BODY$
DECLARE
ret plane_image%ROWTYPE;
BEGIN
SELECT INTO ret pi.*
FROM plane_image pi
WHERE pi.id_plane_image = d_id_plane_image;
DELETE FROM plane_image
WHERE id_plane_image = d_id_plane_image;
RETURN ret;
END
$BODY$
LANGUAGE 'plpgsql' VOLATILE
COST 100;
ALTER FUNCTION plane_image_delete(integer) OWNER TO postgres;
CREATE OR REPLACE FUNCTION plane_image_get(id_plane integer)
RETURNS SETOF plane_image AS
$BODY$
BEGIN
RETURN QUERY (
SELECT *
FROM plane_image pi
WHERE pi.id_plane = id_plane
);
END
$BODY$
LANGUAGE 'plpgsql' VOLATILE
COST 100
ROWS 1000;
ALTER FUNCTION plane_image_get(integer) OWNER TO postgres;
CREATE OR REPLACE FUNCTION plane_update(u_id_plane integer, u_section integer, u_year integer, u_date_add date, u_date_eqv date, u_date_end date, u_task_text text, u_comment text)
RETURNS integer AS
$BODY$
BEGIN
UPDATE plane
SET section = u_section, year = u_year, date_add = u_date_add, date_eqv = u_date_eqv, date_end = u_date_end, task_text = u_task_text, comment = u_comment
WHERE id_plane = u_id_plane;
RETURN 1;
EXCEPTION
WHEN foreign_key_violation THEN RETURN -1;
WHEN not_null_violation THEN RETURN -2;
WHEN unique_violation THEN RETURN -3;
WHEN check_violation THEN RETURN -4;
END
$BODY$
LANGUAGE 'plpgsql' VOLATILE
COST 100;
ALTER FUNCTION plane_update(integer, integer, integer, date, date, date, text, text) OWNER TO postgres;
CREATE OR REPLACE FUNCTION project_add(file text, url text, alt text)
RETURNS integer AS
$BODY$
BEGIN
INSERT INTO project (project_file, project_url, project_alt)
VALUES (file, url, alt);
RETURN currval('project_id_project_seq');
EXCEPTION
WHEN not_null_violation THEN RETURN -1;
WHEN unique_violation THEN RETURN -2;
WHEN check_violation THEN RETURN -3;
END
$BODY$
LANGUAGE 'plpgsql' VOLATILE
COST 100;
ALTER FUNCTION project_add(text, text, text) OWNER TO postgres;
CREATE OR REPLACE FUNCTION project_delete(d_id_project integer)
RETURNS text AS
$BODY$
DECLARE
name text;
BEGIN
SELECT INTO name p.project_file
FROM project p
WHERE p.id_project = d_id_project;
DELETE FROM project
WHERE id_project = d_id_project;
RETURN name;
END
$BODY$
LANGUAGE 'plpgsql' VOLATILE
COST 100;
ALTER FUNCTION project_delete(integer) OWNER TO postgres;
CREATE OR REPLACE FUNCTION project_get()
RETURNS SETOF project AS
$BODY$
BEGIN
RETURN QUERY (
SELECT *
FROM project
ORDER BY id_project ASC
);
END
$BODY$
LANGUAGE 'plpgsql' VOLATILE
COST 100
ROWS 1000;
ALTER FUNCTION project_get() OWNER TO postgres;
CREATE OR REPLACE FUNCTION project_update(u_id_project integer, u_url text, u_alt text)
RETURNS integer AS
$BODY$
BEGIN
UPDATE project
SET project_url = u_url, project_alt = u_alt
WHERE id_project = u_id_project;
RETURN 1;
EXCEPTION
WHEN not_null_violation THEN RETURN -1;
WHEN check_violation THEN RETURN -2;
END
$BODY$
LANGUAGE 'plpgsql' VOLATILE
COST 100;
ALTER FUNCTION project_update(integer, text, text) OWNER TO postgres;
CREATE OR REPLACE FUNCTION quest_answer_add(a_id_page integer, a_quest_city character varying, a_quest_fio character varying, a_quest_email character varying, a_quest_text text, a_answer_text text, a_answer_date date)
RETURNS integer AS
$BODY$
BEGIN
INSERT INTO quest_answer (id_page, quest_city, quest_fio, quest_email, quest_text, answer_text, answer_date)
VALUES (a_id_page, a_quest_city, a_quest_fio, a_quest_email, a_quest_text, a_answer_text, a_answer_date);
RETURN currval ('quest_answer_id_quest_answer_seq');
EXCEPTION
WHEN foreign_key_violation THEN RETURN -1;
WHEN not_null_violation THEN RETURN -2;
WHEN unique_violation THEN RETURN -3;
WHEN check_violation THEN RETURN -4;
END
$BODY$
LANGUAGE 'plpgsql' VOLATILE
COST 100;
ALTER FUNCTION quest_answer_add(integer, character varying, character varying, character varying, text, text, date) OWNER TO postgres;
CREATE OR REPLACE FUNCTION quest_answer_add_quest(a_id_page integer, a_city character varying, a_fio character varying, a_email character varying, a_quest text)
RETURNS integer AS
$BODY$
BEGIN
INSERT INTO quest_answer (id_page, quest_city, quest_fio, quest_email, quest_text)
VALUES (a_id_page, a_city, a_fio, a_email, a_quest);
RETURN 1;
EXCEPTION
WHEN foreign_key_violation THEN RETURN -1;
WHEN not_null_violation THEN RETURN -2;
WHEN unique_violation THEN RETURN -3;
WHEN check_violation THEN RETURN -4;
END
$BODY$
LANGUAGE 'plpgsql' VOLATILE
COST 100;
ALTER FUNCTION quest_answer_add_quest(integer, character varying, character varying, character varying, text) OWNER TO postgres;
CREATE OR REPLACE FUNCTION quest_answer_delete(d_id_quest_answer integer)
RETURNS SETOF quest_answer_image AS
$BODY$
BEGIN
RETURN QUERY (
SELECT *
FROM quest_answer_image
WHERE id_quest_answer = d_id_quest_answer
);
DELETE FROM quest_answer
WHERE id_quest_answer = d_id_quest_answer;
END
$BODY$
LANGUAGE 'plpgsql' VOLATILE
COST 100
ROWS 1000;
ALTER FUNCTION quest_answer_delete(integer) OWNER TO postgres;
CREATE OR REPLACE FUNCTION quest_answer_get(id_page integer, lim integer, ofs integer)
RETURNS SETOF quest_answer AS
$BODY$
BEGIN
RETURN QUERY (
SELECT *
FROM quest_answer qa
WHERE
qa.id_page = id_page AND
(
qa.answer_text IS NOT NULL OR
qa.answer_text <> ''
)
ORDER BY qa.quest_date DESC
LIMIT lim OFFSET ofs
);
END
$BODY$
LANGUAGE 'plpgsql' VOLATILE
COST 100
ROWS 1000;
ALTER FUNCTION quest_answer_get(integer, integer, integer) OWNER TO postgres;
CREATE OR REPLACE FUNCTION quest_answer_get_all(id_page integer)
RETURNS SETOF quest_answer AS
$BODY$
BEGIN
RETURN QUERY (
SELECT *
FROM quest_answer qa
WHERE qa.id_page = id_page
ORDER BY qa.quest_date DESC
);
END
$BODY$
LANGUAGE 'plpgsql' VOLATILE
COST 100
ROWS 1000;
ALTER FUNCTION quest_answer_get_all(integer) OWNER TO postgres;
CREATE OR REPLACE FUNCTION quest_answer_get_by_id_quest_answer(id_quest_answer integer)
RETURNS quest_answer AS
$BODY$
DECLARE
ret quest_answer%ROWTYPE;
BEGIN
SELECT INTO ret qa.*
FROM quest_answer qa
WHERE qa.id_quest_answer = id_quest_answer;
RETURN ret;
END
$BODY$
LANGUAGE 'plpgsql' VOLATILE
COST 100;
ALTER FUNCTION quest_answer_get_by_id_quest_answer(integer) OWNER TO postgres;
CREATE OR REPLACE FUNCTION quest_answer_get_count(id_page integer)
RETURNS integer AS
$BODY$
BEGIN
RETURN (
SELECT COUNT(*)
FROM quest_answer qa
WHERE
qa.id_page = id_page AND
(
qa.answer_text IS NOT NULL OR
qa.answer_text <> ''
)
);
END
$BODY$
LANGUAGE 'plpgsql' VOLATILE
COST 100;
ALTER FUNCTION quest_answer_get_count(integer) OWNER TO postgres;
CREATE OR REPLACE FUNCTION quest_answer_image_add(a_id_quest_answer integer, a_file text)
RETURNS integer AS
$BODY$
BEGIN
INSERT INTO quest_answer_image (id_quest_answer, file)
VALUES (a_id_quest_answer, a_file);
RETURN currval ('quest_answer_image_id_quest_answer_image_seq');
EXCEPTION
WHEN foreign_key_violation THEN RETURN -1;
WHEN not_null_violation THEN RETURN -2;
WHEN unique_violation THEN RETURN -3;
WHEN check_violation THEN RETURN -4;
END
$BODY$
LANGUAGE 'plpgsql' VOLATILE
COST 100;
ALTER FUNCTION quest_answer_image_add(integer, text) OWNER TO postgres;
CREATE OR REPLACE FUNCTION quest_answer_image_delete(d_id_quest_answer_image integer)
RETURNS quest_answer_image AS
$BODY$
DECLARE
ret quest_answer_image%ROWTYPE;
BEGIN
SELECT INTO ret qi.*
FROM quest_answer_image qi
WHERE qi.id_quest_answer_image = d_id_quest_answer_image;
DELETE FROM quest_answer_image
WHERE id_quest_answer_image = d_id_quest_answer_image;
RETURN ret;
END
$BODY$
LANGUAGE 'plpgsql' VOLATILE
COST 100;
ALTER FUNCTION quest_answer_image_delete(integer) OWNER TO postgres;
CREATE OR REPLACE FUNCTION quest_answer_image_get(id_quest_answer integer)
RETURNS SETOF quest_answer_image AS
$BODY$
BEGIN
RETURN QUERY (
SELECT *
FROM quest_answer_image qi
WHERE qi.id_quest_answer = id_quest_answer
);
END
$BODY$
LANGUAGE 'plpgsql' VOLATILE
COST 100
ROWS 1000;
ALTER FUNCTION quest_answer_image_get(integer) OWNER TO postgres;
CREATE OR REPLACE FUNCTION quest_answer_update(u_id_quest_answer integer, u_quest_city character varying, u_quest_fio character varying, u_quest_email character varying, u_quest_text text, u_quest_date date, u_answer_text text, u_answer_date date)
RETURNS integer AS
$BODY$
BEGIN
UPDATE quest_answer
SET quest_city = u_quest_city, quest_fio = u_quest_fio, quest_email = u_quest_email, quest_text = u_quest_text, quest_date = u_quest_date, answer_text = u_answer_text, answer_date = u_answer_date
WHERE id_quest_answer = u_id_quest_answer;
RETURN 1;
EXCEPTION
WHEN foreign_key_violation THEN RETURN -1;
WHEN not_null_violation THEN RETURN -2;
WHEN unique_violation THEN RETURN -3;
WHEN check_violation THEN RETURN -4;
END
$BODY$
LANGUAGE 'plpgsql' VOLATILE
COST 100;
ALTER FUNCTION quest_answer_update(integer, character varying, character varying, character varying, text, date, text, date) OWNER TO postgres;
ПРИЛОЖЕНИЕ 2
РЕЗУЛЬТАТЫ РАБОТЫ ПРОГРАММ
Выборка данных из таблицы audio
Рис. П.2.1
Выборка данных из таблицы city
Рис. П.2.2
Выборка данных из таблицы gallery_album
Рис. П.2.3
Выборка данных из таблицы journal
Рис. П.2.4
Выборка данных из таблицы link
Рис. П.2.5
ПРИЛОЖЕНИЕ 3
РУКОВОДСТВО ОПЕРАТОРА ПО ПРОГРАММЕ УПРАВЛЕНИЯ ДАННЫМИ
П. 3.1. Назначение программы
Программа предназначена для подключения системы к базе данных и корректного выполнения запросов к базе, с помощью которых строится интерфейс системы. Для повышения производительности системы и обеспечения безопасности данных все запросы к базе данных написаны в виде хранимых процедур.
Программа предназначена для выполнения следующих функций:
- создания таблиц базе данных;
- подключения к базе данных;
- генерирование запросов к базе данных;
- написание хранимых процедур;
- выполнение запросов к базе данных.
П.3.2. Условия применеия программы
Требования к техническому обеспечению рабочего места пользователя системы:
1) процессор с частотой не менее 1800 МГц;
2) оперативная память не менее 512 МБ;
3) жёсткий диск с объёмом свободного пространства не менее 1 ГБ;
4) цветной монитор;
5) клавиатура;
6) устройство управления курсором.
Минимальные требования к техническому обеспечению сервера:
1) процессор с частотой не менее 3 ГГц;
2) оперативной памяти не менее 2 ГБ;
3) жёсткий диск с объёмом свободного пространства 5 ГБ.
П.3.3. Пуск программы
Запуск программы происходит автоматически одновременно с начала загрузки всей системы.
П.3.4. Сообщения оператору
Сообщения, выдаваемые при работе программы, и необходимая реакция на них описана в табл. 3.1.
Таблица 3.1
Сообщения
Сообщение |
Описание |
Действие |
|
Ошибка базы данных |
Что-то произошло с базой данных |
Попробывать перезагрузить страницу или зайти попозже |
|
Ничего не найдено |
По вашему запросу ничего не найдено |
Изменить поисковый запрос, либо отказаться от поиска. |
ПРИЛОЖЕНИЕ 4
СТРУКТУРА ТАБЛИЦ БАЗЫ ДАННЫХ
Таблица П.4.1
Структура таблицы audio
Тип ключа |
Название поля |
Тип |
Описание |
|
ПК |
id_audio |
Serial |
Код записи |
|
Title |
Text |
Заголовок записи |
||
Text |
Text |
Текст записи |
||
audio_file |
Varchar |
Ссылка на запись |
||
date_add |
Date |
Дата добавления записи на сайт |
Таблица П.1.2
Структура таблицы block
Тип ключа |
Название поля |
Тип |
Описание |
|
ПК |
id_block |
Serial |
Код блока |
|
id_page |
Integer |
Код страницы |
||
ВК |
id_city |
Integer |
Код города |
|
block_position |
Integer |
|||
block_title |
Text |
Заголовок блока |
||
block_content |
Text |
Заголовок контента |
Таблица П.1.3
Структура таблицыblock_fts
Тип ключа |
Название поля |
Тип |
Описание |
|
ПК |
id_block |
Serial |
Код блока |
|
block_fts |
tsvector |
Вектор |
Таблица П.1.4
Структура таблицы block_image
Тип ключа |
Название поля |
Тип |
Описание |
|
ПК |
id_block_image |
Serial |
Код изображения |
|
ВК |
id_block |
Integer |
Код блока |
|
File |
Text |
Ссылка на файл |
Таблица П.1.5
Структура таблицы city
Тип ключа |
Название поля |
Тип |
Описание |
|
ПК |
id_city |
Serial |
Код города |
|
city_name |
Varchar |
Название города |
Таблица П.1.6
Структура таблицы gallery
Тип ключа |
Название поля |
Тип |
Описание |
|
ПК |
id_gallery |
Serial |
Код картинки |
|
ВК |
id_gallery_album |
Integer |
Код альбома |
|
gallery_file |
Text |
Ссылка на файл |
||
ru_about |
Text |
Информация |
Таблица П.1.7
Структура таблицыgallery_album
Тип ключа |
Название поля |
Тип |
Описание |
|
ПК |
id_gallery_album |
Serial |
Код альбома |
|
gallery_album_file |
Text |
Ссылка на файл |
||
gallery_album_text |
Text |
Информация об альбоме |
||
gallery_album_date_add |
Date |
Дата добавления |
Таблица П.1.8
Структура таблицыgallery_magu
Тип ключа |
Название поля |
Тип |
Описание |
|
ПК |
id_gallery_magu |
Serial |
Код изображения |
|
gallery_magu_file |
Text |
Ссылка на файл |
||
ru_about |
Text |
Информация |
Таблица П.1.9
Структура таблицыgallery_magu_album
Тип ключа |
Название поля |
Тип |
Описание |
|
ПК |
id_gallery_magu _album |
serial |
Код альбома |
|
gallery_magu _album_file |
Text |
Ссылка на файл |
||
gallery_magu _album_text |
Text |
Информация об альбоме |
||
gallery_magu _album_date_add |
date |
Дата добавления |
Таблица П.1.10
Структура таблицыgallery_top
Тип ключа |
Название поля |
Тип |
Описание |
|
ПК |
id_gallery_top |
Serial |
Код изображения |
|
File |
Text |
Ссылка на файл |
Таблица П.1.11
Структура таблицы journal
Тип ключа |
Название поля |
Тип |
Описание |
|
ПК |
id_journal |
serial |
Код журнала |
|
journal_name |
text |
Название журнала |
||
count_page |
integer |
Количество страниц |
||
date_add |
date |
Дата добавления |
||
journal_href |
text |
Ссылка на журнал |
Таблица П.1.12
Структура таблицы link
Тип ключа |
Название поля |
Тип |
Описание |
|
ПК |
id_link |
serial |
Код ссылки |
|
link_text |
text |
Информация |
||
link_url |
text |
Ссылка |
||
link_image |
text |
Изображение |
Таблица П.1.13
Структура таблицыmain_page
Тип ключа |
Название поля |
Тип |
Описание |
|
ВК |
id_menu_top |
Integer |
Код меню |
|
ВК |
id_page |
Integer |
Код страницы |
Таблица П.1.14
Структура таблицы menu
Тип ключа |
Название поля |
Тип |
Описание |
|
ПК |
id_menu |
serial |
Код пункта меню |
|
ВК |
id_sub_menu |
integer |
Код под меню |
|
id_page |
integer |
Код страницы |
||
menu_name |
varchar |
Название меню |
||
menu_alt |
Text |
Второе название |
||
menu_url |
Text |
Ссылка |
Таблица П.1.15
Структура таблицыmenu_top
Тип ключа |
Название поля |
Тип |
Описание |
|
ПК |
id_menu_top |
serial |
Код меню |
|
ВК |
id_sub_menu |
integer |
Код под меню |
|
ВК |
id_page |
integer |
Код страницы |
|
menu_top_name |
varchar |
Название меню |
||
menu_alt |
Text |
Второе название |
||
menu_url |
Text |
Ссылка |
||
menu_top_image |
Text |
Изображение |
Таблица П.1.16
Структура таблицы news
Тип ключа |
Название поля |
Тип |
Описание |
|
ПК |
id_news |
serial |
Код новости |
|
date_add |
Date |
Дата добавления |
||
Theme |
varchar |
Тема новости |
||
text_html |
Text |
Текст новости |
Таблица П.1.17
Структура таблицыnews_fts
Тип ключа |
Название поля |
Тип |
Описание |
|
ВК |
id_news |
integer |
Код новости |
|
news_fts |
tsvector |
Вектор |
Таблица П.1.18
Структура таблицыnews_image
Тип ключа |
Название поля |
Тип |
Описание |
|
ПК |
id_news_image |
serial |
Код изображения |
|
ВК |
id_news |
integer |
Код новости |
|
File |
text |
Ссылка на изображение |
||
sub_title |
text |
Заголовок |
Таблица П.1.19
Структура таблицы page
Тип ключа |
Название поля |
Тип |
Описание |
|
ПК |
id_page |
serial |
Код страницы |
|
page_content |
bytea |
Информация на странице |
||
php_file |
text |
PHP файл |
||
news_bit |
bit |
Системный бит |
||
block_bit |
bit |
Системный бит |
||
plane_bit |
bit |
Системный бит |
||
quest_bit |
bit |
Системный бит |
||
ВК |
id_sub_page |
integer |
Код под страницы |
|
page_name |
text |
Название страницы |
Таблица П.1.20
Структура таблицы plane
Тип ключа |
Название поля |
Тип |
Описание |
|
ПК |
id_plane |
serial |
Код плана |
|
ВК |
id_page |
integer |
Код страницы |
|
Section |
integer |
Квартал |
||
Year |
integer |
Год |
||
date_add |
date |
Дата добавления |
||
date_eqv |
date |
Продолжительность |
||
date_end |
date |
Дата окончания |
||
task_text |
text |
Текст задания |
||
Comment |
text |
Комментарии |
Таблица П.1.21
Структура таблицыplane_image
Тип ключа |
Название поля |
Тип |
Описание |
|
ПК |
id_plane_image |
serial |
Код изображения |
|
ВК |
id_plane |
integer |
Код плана |
|
File |
text |
Ссылка на файл |
Таблица П.1.22
Структура таблицы project
Тип ключа |
Название поля |
Тип |
Описание |
|
ПК |
id_project |
serial |
Код проекта |
|
project_file |
text |
Файл проекта |
||
project_url |
text |
Адрес проекта |
Таблица П.1.23
Структура таблицыquest_answer
Тип ключа |
Название поля |
Тип |
Описание |
|
ПК |
id_quest_answer |
serial |
Код вопроса, ответа |
|
ВК |
id_page |
integer |
Код страницы |
|
quest_city |
varchar |
Город |
||
quest_fio |
varchar |
ФИО |
||
quest_email |
varchar |
Электронный адрес |
||
quest_text |
text |
Текст вопроса |
||
quest_date |
date |
Дата вопроса |
||
answer_text |
text |
Текст ответа |
||
answer_date |
date |
Дата ответа |
Таблица П.1.24
Структуратаблицы quest_answer_image
Тип ключа |
Название поля |
Тип |
Описание |
|
ПК |
id_quest_answer_image |
Serial |
Код изображения |
|
ВК |
id_quest_answer |
Integer |
Код вопроса и ответа |
|
File |
Text |
Ссылка на изображение |
Размещено на Allbest.ru
Подобные документы
Обоснование целесообразности разработки системы для сайта главного федерального инспектора Башкортостана. Функциональное назначение системы. Подключение системы к базе данных и корректное выполнение запросов к базе, с помощью которых строится интерфейс.
дипломная работа [2,1 M], добавлен 07.07.2012Создание подсистемы хранения и управления данными для корпоративного сайта. Особенности корпоративного сайта компании "Гвоздь", условия эксплуатации, определяющие основные требования к системе. Обеспечение безопасных условий труда инженера-разработчика.
дипломная работа [3,9 M], добавлен 06.04.2013Основы работы с прикладным программным обеспечением, содержащим составляющие для работы с данными. Составление исходного кода скриптов для сортировки, добавления, редактирования и удаления информации в базу данных. Особенности работы операции поиска.
курсовая работа [610,7 K], добавлен 20.01.2012Разработка программы, создающей и управляющей базой данных, ее реализация на языке Turbo Pascal. Организация алгоритма программы. Вывод информации и возможность добавления информации в базу данных. Поиск информации в базе данных по заданному значению.
курсовая работа [26,7 K], добавлен 19.06.2010Создание системы управления данными для информационной системы ВУЗа с помощью MS Access. Разработка таблиц и схемы базы данных, запросов в MS SQL Server, основных форм и отчетов. Организация формы главного меню для автоматического вызова объектов БД.
курсовая работа [3,0 M], добавлен 09.04.2012Выбор инструментальной среды для разработки базы данных. Подсистема сбора, обработки и загрузки данных. Укрупненный алгоритм разрабатываемой информационной системы. Формирование области запросов базы, интерфейс ввода и редактирования входных данных.
курсовая работа [2,2 M], добавлен 25.12.2012Технические средства обеспечения функционирования информационной системы. Проектирование базы данных информационной системы. Разработка веб-приложения – справочно-информационной системы для предприятия. Организация записи информации в базу данных.
дипломная работа [4,4 M], добавлен 16.05.2022Разработка web-приложения для оперирования данными с помощью базы данных и web-браузера в качестве клиента пользователя. Основные преимущества языка программирования Java. Осуществление редактирования, добавления информации и поиска по архивам данных.
дипломная работа [2,1 M], добавлен 30.09.2016Требования и структура систем обработки экономической информации. Технология обработки информации и обслуживание системы, защита информации. Процесс создания запросов, форм, отчетов, макросов и модулей. Средства организации баз данных и работы с ними.
курсовая работа [2,7 M], добавлен 25.04.2012Основные возможности программных комплексов "АРМ-Клиент", "Астрал-Отчет". Технология обработки информации в системе электронной обработки данных. Разработка рабочего места налогового инспектора, предназначенного для автоматизации заполнения деклараций.
дипломная работа [285,3 K], добавлен 12.04.2013