powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / Оптимальная структура таблицы для хранения истории...
25 сообщений из 95, страница 2 из 4
Оптимальная структура таблицы для хранения истории...
    #35731060
guest_20040621
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
> сейчас кризис, передача знаний должна быть ограничена и оплачиваема

Хорошая точка зрения. Безотносительно кризиса.
...
Рейтинг: 0 / 0
Оптимальная структура таблицы для хранения истории...
    #35731062
expla
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Неизвестный,

В кризис можно и за еду поработать... И не надо меня переубеждать. Ник expla всегда прав, а у его владельца своя голова есть и она не всегда разделяет мнение ника.
...
Рейтинг: 0 / 0
Оптимальная структура таблицы для хранения истории...
    #35731065
expla
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
guest_20040621> сейчас кризис, передача знаний должна быть ограничена и оплачиваема

Хорошая точка зрения. Безотносительно кризиса.

Некошерно.
...
Рейтинг: 0 / 0
Оптимальная структура таблицы для хранения истории...
    #35731683
Фотография bootty
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
guest_20040621Тогда не употребляйте буквосочетания "история изменений" и "база данных". Потому как в общем случае в любой момент времени имеете кашу вместо данных.Судя по Вашему тону, у Вас есть другая еврсия ответа на заданный Вами же вопрос. Судя по этому же тону, Вы очень гордитесь Вашей еврсией, но проблема в том, что "передача знаний должна быть ограничена и оплачиваема".
...
Рейтинг: 0 / 0
Оптимальная структура таблицы для хранения истории...
    #35731728
guest_20040621
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
> Судя по Вашему тону, у Вас есть другая еврсия ответа на заданный Вами же вопрос.

И не одна. С помощью наводящих вопросов хотелось помочь задавшему вопрос самостоятельно найти варианты правильных ответов. Если задавший вопрос не хочет думать головой - это его проблемы. Значит, он так и останется конкурентом китайских пионеров.
...
Рейтинг: 0 / 0
Оптимальная структура таблицы для хранения истории...
    #35731838
Фотография bootty
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
guest_20040621С помощью наводящих вопросов хотелось помочь задавшему вопрос самостоятельно найти варианты правильных ответов. Если задавший вопрос не хочет думать головой - это его проблемы.Задавший вопрос сейчас не готов выйти на предлагаемый уровень абстракции, его интересует решение конкретной и не очень глобальной задачи. Если "ментор" не хочет/не может задать доступные для понимания наводящие вопросы, а начинает пространные теоретические рассуждения, то это, конечно, тоже проблема задавшего вопрос, но самого "ментора" такое поведение не украшает.
...
Рейтинг: 0 / 0
Оптимальная структура таблицы для хранения истории...
    #35732382
Фотография Dogen
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
explaDogenпоскольку доступ может быть предоставлен как на определенный срок, так и до отмены, то изначальная дилемма бессмысленна

Срок предоставления доступа это плановый показатель, фактическое изъятие доступа нужно фиксировать отдельно. Тогда в вариант номер два в записи типа "получил доступ" нужно предусмотреть атрибут - срок предоставления. Когда сотрудник фактически лишится доступа, нужно быдет завести запись типа "лишился доступа". При этом даты могут и не совпадать как в большую так и в меньшую стороны.
Выдать имярек доступ на такой-то срок или бессрочно - это, скудным умишком проникаю, данные из некоего распоряжения. Там их и надо фиксировать. Можно подумать насчет записей вроде "отобрать доступ", т.к. это распоряжение администратору безопасности системы (например), действия которого тоже надо протоколировать.

Выдан доступ - событие, прекращен доступ - событие. Их надо регистрировать. "Интервал доступа" - хрень, которая никому не нужна.
...
Рейтинг: 0 / 0
Оптимальная структура таблицы для хранения истории...
    #35732448
expla
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Dogen

Выдан доступ - событие, прекращен доступ - событие. Их надо регистрировать. "Интервал доступа" - хрень, которая никому не нужна.

"Интервал доступа" не хрень, а состояние. В зависимости от задачи может быть полезен как тот, так и другой формализм.

"Интервал доступа" может быть полезен в материализованном виде. Например, в конторе кто то спёр ноутбук со стола, мы ведём следствие. Нужно определить, кто (who) имел доступ в кабинет :room в день [:start, :end], когда ноутбук исчез. Вот тут и будут полезны "интервалы доступа" - access. Простой запрос позволяет получить ответ на этот вопрос.

Код: plaintext
1.
2.
3.
4.
select distinct who
from access a
where
  room = :room and
  :start <= revoke and grant <= :end;

Можно найти ещё много ситуаций.
...
Рейтинг: 0 / 0
Оптимальная структура таблицы для хранения истории...
    #35732466
Фотография Dogen
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
boottyDogenпоскольку доступ может быть предоставлен как на определенный срок, так и до отмены, то изначальная дилемма бессмысленнаПричинно-следственную связь не объясните? :)я не думал, что вопрос всего лишь о примитивной регистрации выданного доступа :) не вчитался, уж простите
...
Рейтинг: 0 / 0
Оптимальная структура таблицы для хранения истории...
    #35732477
Фотография Dogen
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
expla
"Интервал доступа" не хрень, а состояние. В зависимости от задачи может быть полезен как тот, так и другой формализм.

Можно найти ещё много ситуаций.

Можно, не спорю. Но придется тогда рассматривать все возможные случаи потери данных об отобранном или выданном доступе и вероятность наступления таких случаев... Если в общем случае, то лучше не умножать сущностей. Выдали права, забрали, приказы с датами... а для наличия доступа сущность надо бы заводить только если это оправдано в конкретной реализации.
...
Рейтинг: 0 / 0
Оптимальная структура таблицы для хранения истории...
    #35732538
expla
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Dogen,

"придется тогда рассматривать все возможные случаи потери данных "

здесь случаев, согласитесь, всего 4 (все Ок, нет одного из событий или нет всех событий). Почему бы их и не рассмореть? Наконец, можно использовать какую либо общую стратегию исправления/обхода ошибок, для обработки всех ситуаций.

"Выдали права, забрали, приказы с датами... "

просто автоматизировать систему которая работает как компьютер. Попробуйте автоматизировать хаос.

"сущность надо бы заводить только если это оправдано в конкретной реализации"

естественно. В противном случае это деньги на ветер, а потом эта сущность сама умрёт, ибо всё что не живёт - умирает.
...
Рейтинг: 0 / 0
Оптимальная структура таблицы для хранения истории...
    #35732623
Bely
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
explaПростой запрос позволяет получить ответ на этот вопрос.а такой запрос считается сложным, чтоли?

Код: plaintext
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.
with ev as
(
-- Тестовые данные
SELECT 'GRANT'  access_act, to_date('10.10.2008','DD.MM.YYYY') as dt, 'u1' as usr from dual union all
SELECT 'REVOKE' access_act, to_date('14.10.2008','DD.MM.YYYY') as dt, 'u1' as usr from dual union all
SELECT 'GRANT'  access_act, to_date('22.10.2008','DD.MM.YYYY') as dt, 'u1' as usr from dual union all
SELECT 'GRANT'  access_act, to_date('11.11.2008','DD.MM.YYYY') as dt, 'u2' as usr from dual union all
SELECT 'GRANT'  access_act, to_date('09.10.2008','DD.MM.YYYY') as dt, 'u3' as usr from dual union all
SELECT 'REVOKE' access_act, to_date('20.10.2008','DD.MM.YYYY') as dt, 'u3' as usr from dual union all
SELECT 'GRANT'  access_act, to_date('12.12.2008','DD.MM.YYYY') as dt, 'u3' as usr from dual
)

-- кто имел доступ на указанную дату
SELECT usr
FROM ev
WHERE ev.access_act = 'GRANT'
  and (ev.usr,ev.dt) in
  (SELECT ev1.usr, max(ev1.dt) FROM ev ev1
   WHERE ev1.dt <= to_date('01.11.2008','DD.MM.YYYY') GROUP BY ev1.usr)
union
-- Кто новый получил доступ в интервале
SELECT usr
FROM ev 
WHERE ev.access_act = 'GRANT'
  and ev.dt between to_date('01.11.2008','DD.MM.YYYY') and to_date('01.12.2008','DD.MM.YYYY')
...
Рейтинг: 0 / 0
Оптимальная структура таблицы для хранения истории...
    #35732803
expla
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Bely,

если вам платят за объём кода, то я за вас спокоен.

Для особо одарённых - "простой" означает, что проше быть не может.

На таком тривиальном примере сложно оценить прелесть подхода. Добавьте для приличия ещё каие нибудь условия, типа "сотрудник был на работе", "дверь в комнату была не под охраной" и т.п..
...
Рейтинг: 0 / 0
Оптимальная структура таблицы для хранения истории...
    #35733072
Фотография bootty
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dogenя не думал, что вопрос всего лишь о примитивной регистрации выданного доступа :) не вчитался, уж проститеВопрос в структуре для хранения истории событий. Разрешение/запрещение доступа, изменение цены товара, изменение какого-либо признака сущности с какого-то момента.

А здесь почему-то все прицепились к одному конкретному примеру...
...
Рейтинг: 0 / 0
Оптимальная структура таблицы для хранения истории...
    #35733135
expla
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
boottyА здесь почему-то все прицепились к одному конкретному примеру...

Так это твоя забота направлять дискуссию в нужное русло. Нарисуй другой пример, все прицепятся к нему.
...
Рейтинг: 0 / 0
Оптимальная структура таблицы для хранения истории...
    #35733179
expla
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
boottyDogenя не думал, что вопрос всего лишь о примитивной регистрации выданного доступа :) не вчитался, уж проститеВопрос в структуре для хранения истории событий.

Сформулировал задачу?
События не имеют протяжённости во времени (в отличии от их последствий), так что Вариант номер раз в такой постановке не катит. Если интересуют и события и состояния, количество вариантов возрастает.
Ещё, в природе не существует событий, как не существует точек, это математическая абстракция. Так что твоя модель может быть не вполне адекватной в каждом конкретном случае.
...
Рейтинг: 0 / 0
Оптимальная структура таблицы для хранения истории...
    #35733417
Bely
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
explaесли вам платят за объём кода, то я за вас спокоен. мне платят за то, что такие задачи не вызывают у меня проблем.
explaДля особо одарённых - "простой" означает, что проше быть не может.Простой код - не значит самый быстрый.
...
Рейтинг: 0 / 0
Оптимальная структура таблицы для хранения истории...
    #35733539
expla
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
BelyexplaДля особо одарённых - "простой" означает, что проше быть не может.Простой код - не значит самый быстрый.

Я про это и не говорил, но раз уж вы напросились, могу утверждать, что на выбраной мною платформе ваш код проиграет в производительности. И вполне вероятно, что на выбранных мною задачах подобного класса, ваша работа будет стоить дороже работы студента со стажем программирования запросов в один год и займёт больше времени.
Естественно, вы на своей платформе можете показать обратный результат и работать за еду.
...
Рейтинг: 0 / 0
Оптимальная структура таблицы для хранения истории...
    #35734449
Bely
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
explaИ вполне вероятно, что на выбранных мною задачах подобного класса, ваша работа будет стоить дороже работы студента со стажем программирования запросов в один год и займёт больше времени.
Естественно, вы на своей платформе можете показать обратный результат и работать за еду. Какой-то Вы на жись обиженный...
Работа студента будет дешевле ингода, но вот быстрее - сомнительно :)

И хватает на еду не только мне, но и семье. И на хлеб и на масло :)
Чего и вам желаю.
...
Рейтинг: 0 / 0
Оптимальная структура таблицы для хранения истории...
    #35734565
Фотография bootty
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
explaСобытия не имеют протяжённости во времени (в отличии от их последствий), так что Вариант номер раз в такой постановке не катит. Если интересуют и события и состояния, количество вариантов возрастает.Интересуют и события, и состояния. Предполагаю, чаще будет требоваться знать состояние.
explaЕщё, в природе не существует событий, как не существует точек, это математическая абстракция. Так что твоя модель может быть не вполне адекватной в каждом конкретном случае.Ок, другой пример:
Номенклатура ZZZZZZ <ресурс 1> имеет цену <измерение 1> с <BeginDate>.
Насколько адекватно, на Ваш взгляд?
...
Рейтинг: 0 / 0
Оптимальная структура таблицы для хранения истории...
    #35734632
expla
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
bootty,

номенклатура такая же абстракция, как и событие, так что ИМХО, здесь всё в порядке. И вообще, с утра как то не придумывается, где может быть плохо. Наверное, даже и не может, потому как БД уже имеет дело с абстракцией реального мира.
...
Рейтинг: 0 / 0
Оптимальная структура таблицы для хранения истории...
    #35734660
ййййййййй
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
explaНеизвестный,

В кризис можно и за еду поработать... И не надо меня переубеждать. Ник expla всегда прав, а у его владельца своя голова есть и она не всегда разделяет мнение ника.
Плохой хозяин у Вашей головы.
За еду нельзя работать, даже в кризис.
...
Рейтинг: 0 / 0
Оптимальная структура таблицы для хранения истории...
    #35734669
expla
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Bely
Работа студента будет дешевле ингода, но вот быстрее - сомнительно :)


Вам платят меньше чем студентам?

Bely
И хватает на еду не только мне, но и семье. И на хлеб и на масло :)
Чего и вам желаю.


Вот уж не надо! Я предпочитаю питаться более разнообразно.
...
Рейтинг: 0 / 0
Оптимальная структура таблицы для хранения истории...
    #35734692
expla
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
йййййййййПлохой хозяин у Вашей головы.
За еду нельзя работать, даже в кризис.

Это Вы гастарбайтерам на закрытой стройке расскажите.
...
Рейтинг: 0 / 0
Оптимальная структура таблицы для хранения истории...
    #35734748
Bely
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
explaВам платят меньше чем студентам? Когда заканчиваются доводы с трассировками и примерами, начинаются понты и словоблудье.

по существу есть что сказать? С примерами и трассировками?
...
Рейтинг: 0 / 0
25 сообщений из 95, страница 2 из 4
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / Оптимальная структура таблицы для хранения истории...
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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