Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / Шаблоны применения / 25 сообщений из 57, страница 1 из 3
05.12.2008, 13:20
    #35696021
Naf
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
05.12.2008, 15:16
    #35696429
Senya_L
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Шаблоны применения
Naf,
первое предложение: заменить термин "шаблоны применения" на "шаблоны проектирования". Привычней как-то ...
...
Рейтинг: 0 / 0
05.12.2008, 15:24
    #35696461
Naf
Naf
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Шаблоны применения
Senya_LNaf,
первое предложение: заменить термин "шаблоны применения" на "шаблоны проектирования". Привычней как-то ...
Ну пусть проектирования, но стандартный набор шаблонов проектирования (если можно сравнивать) как бы выше в уровне абстракции
...
Рейтинг: 0 / 0
05.12.2008, 15:27
    #35696470
expla
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Шаблоны применения
Senya_LNaf,
первое предложение: заменить термин "шаблоны применения" на "шаблоны проектирования". Привычней как-то ...

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



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

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

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

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

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

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

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


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

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

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

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

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

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


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

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

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

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

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

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

аналогично и договоры с юр.лицами после смены у них ген.дира
...
Рейтинг: 0 / 0
08.12.2008, 23:32
    #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
09.12.2008, 13:50
    #35702581
expla
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Шаблоны применения
Senya_L, не очень понятно. Где та сущность в которой фамилия должна (не) измениться?
...
Рейтинг: 0 / 0
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / Шаблоны применения / 25 сообщений из 57, страница 1 из 3
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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