powered by simpleCommunicator - 2.0.59     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / Переменное количество аналитик
12 сообщений из 12, страница 1 из 1
Переменное количество аналитик
    #38387263
londinium
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Всем здравствуйте,
возник такой вопрос по проектированию. Предположим, у нас есть таблица договоров
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
CREATE TABLE dbo.Agrees
(
  Agree_ID INT NOT NULL IDENTITY(1,1) NOT NULL PRIMARY KEY,
  AgreeNumber VARCHAR(50)NOT NULL,
  StartAgreeDate DATE NOT NULL,
  StopAgreeDate DATE NOT NULL,
  Contragent_ID INT NOT NULL

)


Привязываем к этому договору признак/аналитику например, "кредит/депозит", т.е. таблица становится такой
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
CREATE TABLE dbo.Agrees
(
  Agree_ID INT NOT NULL IDENTITY(1,1) NOT NULL PRIMARY KEY,
  AgreeNumber VARCHAR(50)NOT NULL,
  StartAgreeDate DATE NOT NULL,
  StopAgreeDate DATE NOT NULL,
  Contragent_ID INT NOT NULL,
  AgreeType_ID TINYINT NOT NULL

)



Для двоичных (т.е. только значения "да"/"нет") признаков/аналитик я придумал такую схему
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
CREATE TABLE dbo.Agrees
(
  Agree_ID INT NOT NULL IDENTITY(1,1) NOT NULL PRIMARY KEY,
  AgreeNumber VARCHAR(50)NOT NULL,
  StartAgreeDate DATE NOT NULL,
  StopAgreeDate DATE NOT NULL,
  Contragent_ID INT NOT NULL

)

CREATE TABLE dbo.Analytics
(
  Analytic_ID SMALLINT NOT NULL IDENTITY(1,1)PRIMARY KEY,
  AnalyticDescription VARCHAR(100)NOT NULL
)

CREATE TABLE dbo.LinkAgreeAnalytic
(
  Link_ID INT NOT NULL IDENTITY(1,1) PRIMARY KEY,
  Agree_ID INT NOT NULL,
  Analytic_ID SMALLINT NOT NULL
)
ALTER TABLE dbo.LinkAgreeAnalytic ADD CONSTRAINT FK_LinkAgrAnalytAgree FOREIGN KEY(Agree_ID )
REFERENCES dbo.Agrees(Agree_ID);
ALTER TABLE dbo.LinkAgreeAnalytic ADD CONSTRAINT FK_LinkAgrAnalytAnalytic FOREIGN KEY(Analytic_ID)
REFERENCES dbo.Analytics(Analytic_ID)


Возникло затруднение, как расширить мою схему на аналитики, у которых есть не только значения "да"/"нет", но целый список возможных значений

Прошу прощения, если объяснил непонятно.

С уважением, Londinium
...
Рейтинг: 0 / 0
Переменное количество аналитик
    #38387266
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
londiniumПрошу прощения, если объяснил непонятно.
Угу, непонятно. Расскажи точно что ты называешь "договором", "признаком" и "аналитикой".
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Переменное количество аналитик
    #38387269
londinium
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
так и знал :-)
Договор - надеюсь, понятно. У него есть номер, дата начала и окончания, контрагент, с которым этот договор заключен.
Теперь нужно, например, повесить признак "большая сумма денег по договору"/"средняя сумма денег по договору"/"маленькая сумма денег по договору". Второй признак - "договор подлежит пролонгации" (возможные значения "да"/нет).
Завтра появится еще какаой-нибудь признак.
Пытаюсь придумать систему, с помощью которой можно будет гибко рулить всеми существующими сейчас и возможными в будущем признаками договоров без необходимости бесконечного расширения таблицы договоров или создания бесконечного количества подчиненных таблиц

Так яснее?
...
Рейтинг: 0 / 0
Переменное количество аналитик
    #38387274
SERG1257
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
То есть вы заново изобретаете EAV
Кстати битовые поля в SQL Server хранятся довольно компактно.
Что именно вас напрягает?
Незнание будущих требований и богатая фантазия постановщиков увы неизменный факт.
...
Рейтинг: 0 / 0
Переменное количество аналитик
    #38387278
londinium
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
авторТо есть вы заново изобретаете EAV
Пока от изобретения Бог миловал. Только разнюхиваю ситуацию. Спасибо за аббревиатуру
...
Рейтинг: 0 / 0
Переменное количество аналитик
    #38387281
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
londiniumпризнак "большая сумма денег по договору"/"средняя сумма денег по
договору"/"маленькая сумма денег по договору". Второй признак - "договор подлежит
пролонгации" (возможные значения "да"/нет).
Это выглядит скорее как условия запроса, чем атрибут договора.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Переменное количество аналитик
    #38387289
londinium
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
авторЭто выглядит скорее как условия запроса, чем атрибут договора
Ну прежде, чем запрашивать, нужно же это где-то сохранить. Вот я и пытаюсь изобрести или переизобрести, как тут было сказано выше, структуру, которая позволит с минимумом затрат это делать
...
Рейтинг: 0 / 0
Переменное количество аналитик
    #38387318
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
londiniumНу прежде, чем запрашивать, нужно же это где-то сохранить.
Что "это"? Сумму по договору? Она у тебя, типа, сейчас не хранится?.. Или дату окончания
договора? А сейчас её нет?..
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Переменное количество аналитик
    #38387646
Кот Матроскин
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
londinium,

сделайте Analytics двухуровневой (либо разделите на 2 таблицы) - т.е. для аналитики из 4 возможных значений создаете 1 родительскую и 4 дочерние записи в Analytics, к договору привязываете одну из дочерних, constraint-ом или триггером проверяете, чтобы не было привязано 2 различных значения одной и той же аналитики
...
Рейтинг: 0 / 0
Переменное количество аналитик
    #38388753
LSV
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Подсказка: аналитика может зависеть от даты. Типа "Периодический реквизит".
...
Рейтинг: 0 / 0
Переменное количество аналитик
    #38388998
londinium
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
авторПодсказка: аналитика может зависеть от даты. Типа "Периодический реквизит".
Спасибо. Согласен. Изменения аналитик во времени - святое дело
...
Рейтинг: 0 / 0
Переменное количество аналитик
    #38403640
morzhuk1
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Спасибо
...
Рейтинг: 0 / 0
12 сообщений из 12, страница 1 из 1
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / Переменное количество аналитик
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]