--- register/doc/tables.tex 2001/09/03 03:01:04 1.1 +++ register/doc/tables.tex 2003/09/04 20:44:30 1.5 @@ -1,5 +1,17 @@ -% $Id: tables.tex,v 1.1 2001/09/03 03:01:04 boris Exp $ -% $ Log:$ +% $Id: tables.tex,v 1.5 2003/09/04 20:44:30 boris Exp $ +% $Log: tables.tex,v $ +% Revision 1.5 2003/09/04 20:44:30 boris +% added status +% +% Revision 1.4 2002/01/20 19:54:32 boris +% Added URL in Clubs +% +% 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} @@ -8,9 +20,212 @@ \begin{document} \title{Структура таблиц для проекта <<клубный регистр>>} -\date{$ $Date: 2001/09/03 03:01:04 $ $, $ $Revision: 1.1 $ $} +\date{$ $Date: 2003/09/04 20:44:30 $ $, $ $Revision: 1.5 $ $} \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 & Text & Дата образования клуба комментарий\\ + 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 & Широта\\ + URL & Text & Список ссылок, разделённых пробелами\\ + \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 & Идентификатор клуба\\ + Status & Text & Статус клуба (ассоциированный клуб и т.д.)\\ + \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: