Структура базы данных - SergeiPoliakov/ResearchCenter GitHub Wiki

Erwin модель тут

Описание таблиц:

SP_Fin_objects:

Таблица объектов пользователя. Объектом могут быть следующие вещи: зарплата с основной работы, счет, депозит, кредит за машину, покупка майонеза 12 февраля, оплата кредита за машину за май 2007. Все они находятся в таблице и имеют нейтральную независящую от объекта информацию. Колонки:

  • Fin_object_id - ключ. ID объекта по которому он уникально идентифицируется. По ID определяется какие параметры(значения) принадлежат именно этому объекту
  • Parent_id - Родитель объекта. Находится в этой же таблице. Пример: у объекта "выплата по кредиту 06.13" есть родитель "кредит". У него в свою очередь вполне может быть родитель "кредиты"
  • User_id - указывает, какому пользователю принадлежит данный объект.
  • Fin_object_type_id - объектный тип которому принадлежит объект. Ссылается на Fin_object_types

SP_Fin_object_types:

Указывает название и ID объектного типа. В зависимости от объектного типа у объекта разные параметры. Пример: тип "кредит", "покупка", "доход", "счет"

SP_attributes:

Показывает, какие атрибуты есть у разных объектных типов. Пример: у типа кредит есть атрибуты с названием "% ставка", "остаток", "дата окончания".... У "покупки" есть "дата оплаты" и "стоимость" Колонки:

  • Attribute_id - ключ. для идентификации
  • Attribute_name - название атрибута
  • Fin_Object_type_id - ссылается на Fin_object_types и показывает, у какого типа есть такой объект

SP_Params:

Таблица в которой устанавливается, каким атрибутам каких объектов принадлежат те или иные значения Колонки:

  • Attribute_id - ссылка на атрибуты
  • Fin_object - ссылка на конкретный объект
  • value_date - Если принимаемый параметр - дата, то заполняется эта колонка. Колонка value1 оставляется Null
  • value - Если принимаемый парамет - число, символы, слова, фразы - ими заполняется этот параметр, value_date остается пустым

SP_Users:

Хранятся данные о пользователе.

  • User_id - id
  • Login - логин
  • Name - имя, необязательный параметр
  • Account_type - тип аккаунта
  • Hash_sum - значение, которое вычисляется из пароля
  • Salt - соль, которая накладывается на хэш.

Подробнее о том, почему в базе хранится не пароль, а хеш+соль можно тут.

Взаимодействия тиблиц внутри БД.

Вот демонстация взаимодействий