File:  [Local Repository] / register / doc / tables.tex
Revision 1.5: download - view: text, annotated - select for diffs - revision graph
Thu Sep 4 20:44:30 2003 UTC (20 years, 10 months ago) by boris
Branches: MAIN
CVS tags: HEAD
added status

% $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}

\usepackage[koi8-r]{inputenc}
\usepackage[russian]{babel}

\begin{document}
\title{Структура таблиц для проекта <<клубный регистр>>}
\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} очень проста. Поля
<<долгота>> и <<широта>> нужны для будущей карты клубов. Поле <<URL>>
нужно для связи ссылок на региональные странички.

\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: 
%%% mode: latex
%%% TeX-master: t
%%% End: 

FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>