--- register/doc/tables.tex 2001/09/03 03:01:04 1.1 +++ register/doc/tables.tex 2001/09/03 03:48:45 1.2 @@ -1,5 +1,8 @@ -% $Id: tables.tex,v 1.1 2001/09/03 03:01:04 boris Exp $ -% $ Log:$ +% $Id: tables.tex,v 1.2 2001/09/03 03:48:45 boris Exp $ +% $Log: tables.tex,v $ +% Revision 1.2 2001/09/03 03:48:45 boris +% Wrote text +% \documentclass[12pt]{article} @@ -8,9 +11,209 @@ \begin{document} \title{Структура таблиц для проекта <<клубный регистр>>} -\date{$ $Date: 2001/09/03 03:01:04 $ $, $ $Revision: 1.1 $ $} +\date{$ $Date: 2001/09/03 03:48:45 $ $, $ $Revision: 1.2 $ $} \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: