% $Id: tables.tex,v 1.3 2001/09/03 04:09:44 boris Exp $ % $Log: tables.tex,v $ % Revision 1.3 2001/09/03 04:09:44 boris % Spell-checked % % Revision 1.2 2001/09/03 03:48:45 boris % Wrote text % \documentclass[12pt]{article} \usepackage[koi8-r]{inputenc} \usepackage[russian]{babel} \begin{document} \title{Структура таблиц для проекта <<клубный регистр>>} \date{$ $Date: 2001/09/03 04:09:44 $ $, $ $Revision: 1.3 $ $} \author{Борис Вейцман} \maketitle \tableofcontents \listoftables \section{Введение} В этом документе описаны таблицы для БД <<клубный реестр>>. Проект осуществляется в стандартной для клуба связке PerlCGI-MySQL. \section{Общая структура} Мы предполагаем \emph{две} иерархии в таблице: регионы и клубы. Регионы образуют цепочку, например, Вселенная $\to$ Россия $\to$ Москва. Клубы делятся на собственно клубы и ассоциации. Каждый регион может входить в несколько регионов, а каждый клуб может быть членом нескольких ассоциаций. Кроме того, мы предполагаем, что один и тот же человек может занимать несколько должностей в разных клубах или ассоциациях. Для этой цели люди выделены в отдельную таблицы. \section{Основные таблицы} \subsection{Таблица клубов} Основное таблицей является таблица Clubs. Её поля перечислены в таблице~\ref{tab:clubs}. Очень важно, что адрес, телефон и т.д., указанные в этой таблице "---это адрес клуба как такового, а не адрес людей из руководства клуба! \begin{table}[tbp] \begin{center} \begin{tabular}{llp{0.5\textwidth}} \hline Поле & Формат & Значение\\ \hline cid & Auto Increment & Идентификатор клуба\\ Name & Text & Название клуба\\ Address & Text & Адрес клуба (отличный от адреса людей, которые представляют клуб!)\\ URL & Text & Список ссылок, разделённых пробелами\\ Phone & Text & Список телефонов, разделённых пробелами\\ Fax & Text & Список факсов, разделённых пробелами\\ Email & Text & Список адресов, разделённых пробелами\\ DoB & Date & Дата образования клуба\\ Sponsor & Text & Основной спонсор клуба\\ Meetings & Text & Основные формы деятельности клуба\\ AdultTeams & Text & Взрослые команды клуба\\ KidTeams & Text & Детские команды клуба\\ ForeignFests & Text & Основные <<чужие>> фестивали, где выступаю команды клуба\\ Braglist & Text & Достижения клуба \\ OwnFests & Text & Фестивали, которые организовывает клуб\\ \hline \end{tabular} \caption{Поля таблицы Clubs} \label{tab:clubs} \end{center} \end{table} \subsection{Таблица регионов} Таблица регионов (таблица~\ref{tab:regions} очень проста. Поля <<долгота>> и <<широта>> нужны для будущей карты клубов. \begin{table}[tbp] \begin{center} \begin{tabular}{llp{0.5\textwidth}} \hline Поле & Формат & Значение\\ \hline rid & Auto Increment & Идентификатор региона\\ Name & Text & Название региона\\ Lon & Float & Долгота\\ Lat & Float & Широта\\ \hline \end{tabular} \caption{Поля таблицы Regions} \label{tab:regions} \end{center} \end{table} \subsection{Таблица кадров} Руководители клубов собраны в таблице People (см. таблицу~\ref{tab:people}). \begin{table}[tbp] \begin{center} \begin{tabular}{llp{0.5\textwidth}} \hline Поле & Формат & Значение\\ \hline pid & Auto Increment & Идентификатор человека\\ Name & Text & ФИО\\ Address & Text & Адрес\\ URL & Text & Список ссылок, разделённых пробелами\\ Phone & Text & Список телефонов, разделённых пробелами\\ Fax & Text & Список факсов, разделённых пробелами\\ Email & Text & Список адресов, разделённых пробелами\\ \hline \end{tabular} \caption{Поля таблицы People} \label{tab:people} \end{center} \end{table} \section{Таблицы связей} Для связей между элементами таблиц нам нужны стандартные реляционные таблицы: \begin{enumerate} \item Таблица ClubClub (\ref{tab:clubclub}): в ней указано отношение <<$A$ есть ассоциация, в которую входит $B$>> \item Таблица ClubPeople (\ref{tab:clubpeople}): в ней указано отношение <<$B$ занимает определённую должность в $A$>>. Поскольку принято перечислять должности в определённом порядке, в таблице есть графа <<вес>>. Чем больше вес, тем раньше идёт должность в порядке перечисления. \item Таблица ClubRegion (\ref{tab:clubregion}): в ней указано отношение <<клуб $B$ входит в регион $A$>> \item Таблица RegionRegion (\ref{tab:regionregion}): в ней указано отношение <<регион $A$ является непосредственным надрегионом для региона $B$>> \end{enumerate} \begin{table}[tbp] \begin{center} \begin{tabular}{llp{0.5\textwidth}} \hline Поле & Формат & Значение\\ \hline Parent & Int & Идентификатор ассоциации\\ Child & Int & Идентификатор клуба\\ \hline \end{tabular} \caption{Поля таблицы ClubClub} \label{tab:clubclub} \end{center} \end{table} \begin{table}[tbp] \begin{center} \begin{tabular}{llp{0.5\textwidth}} \hline Поле & Формат & Значение\\ \hline cid & Int & Идентификатор клуба\\ pid & Int & Идентификатор человека\\ Position & Text & Должность\\ Weight & Int & Вес при перечислении\\ \hline \end{tabular} \caption{Поля таблицы ClubPeople} \label{tab:clubpeople} \end{center} \end{table} \begin{table}[tbp] \begin{center} \begin{tabular}{llp{0.5\textwidth}} \hline Поле & Формат & Значение\\ \hline cid & Int & Идентификатор клуба\\ rid & Int & Идентификатор региона\\ \hline \end{tabular} \caption{Поля таблицы ClubRegion} \label{tab:clubregion} \end{center} \end{table} \begin{table}[tbp] \begin{center} \begin{tabular}{llp{0.5\textwidth}} \hline Поле & Формат & Значение\\ \hline Parent & Int & Идентификатор региона\\ Child & Int & Идентификатор региона\\ \hline \end{tabular} \caption{Поля таблицы RegionRegion} \label{tab:regionregion} \end{center} \end{table} \end{document} %%% Local Variables: %%% mode: latex %%% TeX-master: t %%% End: