powered by simpleCommunicator - 2.0.59     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / Шаблоны применения
25 сообщений из 57, страница 1 из 3
Шаблоны применения
    #35696021
Naf
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Предлагаю собрать шаблоны применения. Начну с

Шаблон: Периодические сведения
Позволяет хранить данные, зависимые от периода.

Структура:
Код: plaintext
1.
2.
3.
4.
UID:UID уникальный ключ 
BeginPeriod: date/datetime not null. Начало актуальности сведений.
EndPeriod: date/datetime Конец актуальности сведений.
<Измерения> Разрезы, в которых ведутся сведения
<Ресурсы> Сведения

Индекс: <Измерения>, BeginPeriod, EndPeriod
уникальный

Методы выборки:

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
Slice(Point:date/datetime): table(object, <Измерения>, <Ресурсы>)
//срез сведений по всем измерениям на дату/время Point
Select object, <Измерения>, <Ресурсы>
From <ПериодическиеСведения>
Where Point between BeginPeriod and EndPeriod

DimensionSlice(Point:date/datetime, dimension:<Измерения>) : object,<Ресурсы>
//срез сведений по одному набору измерений на дату/время Point
Select object,<Ресурсы>
From <ПериодическиеСведения>
Where (Point between BeginPeriod and EndPeriod) and (<Измерения>=dimension)
Триггеры:

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
OnAfterInsert
//вставка нового значения
CurrentRes := DimensionSlice(new.Point, new.<Измерения>);
If CurrentRes.object is null then
	new.EndPeriod := null
else begin
	update CurrentRes.object 
	set EndPeriod := new.BeginPeriod; 	
	new.EndPeriod := CurrentRes.EndPeriod;
end;
	
OnAfterDelete
//удаление значения
CurrentRes := DimensionSlice(old.Point, old.<Измерения>); 
If not CurrentRes.object is null then
	update CurrentRes.object 
	set EndPeriod := old.EndPeriod; 
...
Рейтинг: 0 / 0
Шаблоны применения
    #35696429
Senya_L
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Naf,
первое предложение: заменить термин "шаблоны применения" на "шаблоны проектирования". Привычней как-то ...
...
Рейтинг: 0 / 0
Шаблоны применения
    #35696461
Naf
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Senya_LNaf,
первое предложение: заменить термин "шаблоны применения" на "шаблоны проектирования". Привычней как-то ...
Ну пусть проектирования, но стандартный набор шаблонов проектирования (если можно сравнивать) как бы выше в уровне абстракции
...
Рейтинг: 0 / 0
Шаблоны применения
    #35696470
expla
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Senya_LNaf,
первое предложение: заменить термин "шаблоны применения" на "шаблоны проектирования". Привычней как-то ...

Вроде как "паттерн проектирования" устояшнийся термин. Хотя мне приятнее "шаблон проектирования".
...
Рейтинг: 0 / 0
Шаблоны применения
    #35696512
Naf
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Не важно...
Это шаблоны для конструирования баз данных.
Данный шаблон может применяться, например, для курсов валют или цен товаров.
...
Рейтинг: 0 / 0
Шаблоны применения
    #35696515
expla
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
NafПредлагаю собрать шаблоны применения. Начну с



1. Не ты первый. Поищи по форуму.

2. На каком языке ты пишешь?

3. То что ты написал разве будет работать? Я думаю нет.

4. А чем Period не "измерение"?
...
Рейтинг: 0 / 0
Шаблоны применения
    #35696523
Naf
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
expla
1. Не ты первый. Поищи по форуму.
2. На каком языке ты пишешь?
3. То что ты написал разве будет работать? Я думаю нет.
4. А чем Period не "измерение"?
1. знаю, собираю в коллекцию
2. на некотором псевдо SQL. Но это отдельная тема
3. будет работать, если перенести в реальный SQL
4. это особое измерение. Его стоит выделить отдельно, потому что в нем вся соль. Хотя бы сравнения с ним другие
...
Рейтинг: 0 / 0
Шаблоны применения
    #35696525
Senya_L
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
explaВроде как "паттерн проектирования" устояшнийся термин. Хотя мне приятнее "шаблон проектирования".Ну вот и договорились, осталось шаблонов накидать :)

ЗЫ. К заимствованным словам отношение нормальное, но именно на "паттерн" аллергия почему то
...
Рейтинг: 0 / 0
Шаблоны применения
    #35697588
Фотография Cat2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
NafПредлагаю собрать шаблоны применения.
Меня интересует смысл этих шаблонов и область применения
========
P.S. Мне тоже не нравится слово "паттерны"
...
Рейтинг: 0 / 0
Шаблоны применения
    #35698207
Senya_L
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Cat2NafПредлагаю собрать шаблоны применения.
Меня интересует смысл этих шаблонов и область применения
========
P.S. Мне тоже не нравится слово "паттерны"Смысл, скорее, педагогический. Или методологический. Как пример шаблона Things that change with time . Хотя по первому прочтению показалось далеким от практики. Может надо еще почитать? ;)

Я думаю, будут интереснее, например, как разруливать ситуацию с изменением имени персоны на уровне проектирования БД.
...
Рейтинг: 0 / 0
Шаблоны применения
    #35699498
Naf
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Cat2NafПредлагаю собрать шаблоны применения.
Меня интересует смысл этих шаблонов и область применения
========
P.S. Мне тоже не нравится слово "паттерны"

Это шаблон применяется (поэтому "применения") для создания периодических сведений с историей. Примеры: таблица курсов валют, Цены товаров, Состояний сотрудников (Принят, Уволен)
...
Рейтинг: 0 / 0
Шаблоны применения
    #35699647
Фотография BULK INSERT
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
NafСостояний сотрудников (Принят, Уволен)


принят/уволен - ни разу не "состояние сотрудника"
...
Рейтинг: 0 / 0
Шаблоны применения
    #35699654
Naf
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
BULK INSERT, ну хотя бы физ. лица по отношению к организации
...
Рейтинг: 0 / 0
Шаблоны применения
    #35700506
expla
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
NafBULK INSERT, ну хотя бы физ. лица по отношению к организации

Отошения физ. лиц с организацией (работодателем), регламентируются трудовым договором, записью в трудовой книжке, честным словом, наконец. Т.е. эта связь определяется не атрибутом физ.лица и не атрибутом работодателя, а отдельной сущностью.
...
Рейтинг: 0 / 0
Шаблоны применения
    #35700522
Naf
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
explaNafBULK INSERT, ну хотя бы физ. лица по отношению к организации

Отошения физ. лиц с организацией (работодателем), регламентируются трудовым договором, записью в трудовой книжке, честным словом, наконец. Т.е. эта связь определяется не атрибутом физ.лица и не атрибутом работодателя, а отдельной сущностью.
Ну не знаю, ребята...
Курсы валют для отражения в бух. учете регламентируются центробанком (поправьте если не так)
Цены - приказом о ценах или прайс-листом, заверенным печатью и подписью соответствющих лиц
...
Рейтинг: 0 / 0
Шаблоны применения
    #35700544
expla
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Senya_LЯ думаю, будут интереснее, например, как разруливать ситуацию с изменением имени персоны на уровне проектирования БД.

Да просто не надо из сущности удалять атрибуты. Если в договоре есть графа "Ф.И.О.", то и в таблице "Договор" она должна быть. А то, блин, вместо поля "Договор"."Ф.И.О." создают поле "Договор"."ID_ЛИЦА", а потом думают, что будет с договором, если "ЛИЦО", поменяет своё "ФИО" ...

Если чел. меняет Ф.И.О., то он должен перезаключить договор. В новом договоре будет новое Ф.И.О., а в старом останется старое Ф.И.О.. Тогда в таблице "ЛИЦО", можно будет заменить "Ф.И.О." простым UPDATE.
...
Рейтинг: 0 / 0
Шаблоны применения
    #35700575
Naf
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
expla, должен перезаключить договор
будьте реалистом: требования бизнес-процессов говорят о другом.
К примеру, девушка вышла замуж, сменила фамилию. Думаете она бегать будет по всем компаниям (ЖЭК, телефон, интернет и т.д.) чтоб перезаключить договор?
ФИО в данном случае и есть периодические сведения
...
Рейтинг: 0 / 0
Шаблоны применения
    #35700633
expla
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Nafexpla
1. Не ты первый. Поищи по форуму.

1. знаю, собираю в коллекцию


Так поищи коллекционеров...

ИМХО, по современным меркам подход не верный. БД по сути явление вторичное. Сначала (по крайней в наше время) проектируются классы и кооперации. Выделяются persistent (хранимые) классы. Для хранения этих классов проектируется БД.

Интересно увидеть подходы к реализации в реляционной или объектно-реляционной БД тех или иных конструкций UML. Кроме того, выявлен ряд типовых ситуаций (сейчас наверное около сотни) для которых разработаны паттерны (бррр) проектирования. Думаю, под эти паттерны тоже можно придумать структуры реляционной или объектно-реляционной БД.

Для UML ситуация повторяется как для ER моделирования. Только ER модели были сильно привязаны к возможностям СУБД тех лет, UML больше ориентирован на разработку системы, частью которой может быть БД.
...
Рейтинг: 0 / 0
Шаблоны применения
    #35700814
SeVa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
авторБД по сути явление вторичное
Судимости тоже нужно связывать по фамилиям.Так можно и без вторичных признаков остаться, с одним UML'ом
...
Рейтинг: 0 / 0
Шаблоны применения
    #35700931
expla
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Nafexpla, должен перезаключить договор
будьте реалистом: требования бизнес-процессов говорят о другом.
К примеру, девушка вышла замуж, сменила фамилию. Думаете она бегать будет по всем компаниям (ЖЭК, телефон, интернет и т.д.) чтоб перезаключить договор?
ФИО в данном случае и есть периодические сведения

Бегать не надо, но как только встанет вопрос об урегулировании каких либо отношений, договор придётся перезаключить или как то иначе документально оформить изменение фамилии, паспорта и т.д.. По крайней мере, для выезда за границу загранпаспорт придётся поменять. При продаже квартиры документы тоже придётся выправить, иначе в договоре купли продажи продавцом будет лицо которому по документам квартира не принадлежит.
...
Рейтинг: 0 / 0
Шаблоны применения
    #35700985
Фотография Cat2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
expla,
Трудовой договор, например, не перезаключается. В нем делаются отметки о смене удостоверяющего личность документа, ФИО, пола ( :) )
...
Рейтинг: 0 / 0
Шаблоны применения
    #35701000
expla
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Cat2expla,
Трудовой договор, например, не перезаключается. В нем делаются отметки о смене удостоверяющего личность документа, ФИО, пола ( :) )

Можно и так, но первоначальное Ф.И.О. всё равно в нём не изменится.
...
Рейтинг: 0 / 0
Шаблоны применения
    #35701061
Фотография GUESТ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Cat2,

аналогично и договоры с юр.лицами после смены у них ген.дира
...
Рейтинг: 0 / 0
Шаблоны применения
    #35701291
Senya_L
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я тут говорил про смену фамилии потому, что интересно как это реализуют другие. Честно скажу, лень расписывать по шаблону автора топика, но идея такая.
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
create table Person(
  idPerson  int, -- PK
  Surname  varchar( 30 ),
  Name  varchar( 20 ),
  Secname varchar( 25 ),
  idPrevious int, -- FK
  StartDate  dateTime
)
Я думаю, идея понятна. Достаточно универсально, но и приходится при выборках в запросах изгаляться, в том числе и использовать CTE. Правда, нечасто, в основном требуется выводить фамилию персоны, сделавшей подпись и иногда в скобках приписать текущую фамилию. Как это решается у других - интересно, на идеал не претендую
...
Рейтинг: 0 / 0
Шаблоны применения
    #35702581
expla
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Senya_L, не очень понятно. Где та сущность в которой фамилия должна (не) измениться?
...
Рейтинг: 0 / 0
25 сообщений из 57, страница 1 из 3
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / Шаблоны применения
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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