Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / подскажите по проектированию / 14 сообщений из 14, страница 1 из 1
04.08.2012, 19:00
    #37904485
sergq
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
подскажите по проектированию
Здравствуйте.

Есть таблица "фактов"

product_idflagdata1244.2data2123.5

флаг в 97% случаев меняется только один раз за период.
После каждого периода строятся отчеты. все вроде хорошо.

Но в 3% случаев устанновленный в одном периоде флаг может в другом периоде поменяться.
Возникает вопрос - куда писать значение этого флага.
если писать(обновлять) в эту же таблицу, то потеряется историчность. и повторное построение отчета по предидущему периоду даст уже другой результат.

Что тут можно придумать?
Писать изменения в отдельную таблицу - кажется что получится громоздко в плане отчетов.

Спасибо.
...
Рейтинг: 0 / 0
04.08.2012, 23:16
    #37904599
Максим Н
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
подскажите по проектированию
sergqЕсть таблица "фактов"

product_idflagdata1244.2data2123.5

А где идентификатор периода хранится ?
...
Рейтинг: 0 / 0
05.08.2012, 09:52
    #37904700
Злой Бобр
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
подскажите по проектированию
sergq,

Табличку полностью покажите, а не огрызок. А еще лучше и скрипт создания таблички. Поскольку типы полей угадывать нехочется.
...
Рейтинг: 0 / 0
05.08.2012, 11:42
    #37904736
Dimitry Sibiryakov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
подскажите по проектированию
sergqПисать изменения в отдельную таблицу - кажется что получится громоздко в плане
отчетов.
Это только кажется. Всего-то добавится одна таблица и одно условие во Where.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
05.08.2012, 12:09
    #37904745
sergq
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
подскажите по проектированию
Максим Н,

есть табличка

product_idposition_idyear_idflag11201112120112

и другая

product_idyear_id position_idfrom_dateto_date111

по ней определяется, что на данную дату "активно" и потом join таблицы с флагами по условию равенства product_id и position_id.

но может так случиться, что на две разные даты и при разных year_id у продукта одна и та же позиция.
т.е. в прошлом году он был на position_id= 1 и в этом году он на position_id = 1
В прошлом году ему проставили флаг. и в этом году должны проставить.
...
Рейтинг: 0 / 0
05.08.2012, 15:43
    #37904840
Максим Н
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
подскажите по проектированию
sergq,
Чего то не могу вкурить...
А зачем вам year_id, если есть даты?
Укажите название таблиц, пожалуйста.
...
Рейтинг: 0 / 0
05.08.2012, 19:58
    #37904946
Злой Бобр
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
подскажите по проектированию
sergq,

Автор нечитатель? Ну тогда типы полей озвучивай, раз лень скрипт скопипастить. И еще б сказать какая БД, а то они ведь "слегка" отличаются.
...
Рейтинг: 0 / 0
06.08.2012, 12:48
    #37905496
sergq
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
подскажите по проектированию
Злой Бобр,

все поля integer.
FB 2.5
...
Рейтинг: 0 / 0
06.08.2012, 12:53
    #37905503
MasterZiv
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
подскажите по проектированию
sergqЗлой Бобр,

все поля integer.
FB 2.5
И даты?

Блин, код давай, неча людям мозги полоскать.
...
Рейтинг: 0 / 0
06.08.2012, 13:11
    #37905539
Naf
Naf
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
подскажите по проектированию
...
Рейтинг: 0 / 0
06.08.2012, 16:05
    #37905916
sergq
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
подскажите по проектированию
MasterZiv,

скрипт таблиц и данных

Запрос
Код: sql
1.
2.
3.
4.
select pos.*,flags.flag from pos
left join flags on flags.product_id = pos.product_id and flags.position_id = pos.position_id
where pos.product_id = 1
and '01.02.2011' between pos.from_date and pos.to_date



и 2010 и 2011 года выдаеют ссылку на одну и ту же строку флагов. но надо сохранить все значения.
и соответственно чтобы выдавало за разные года разные значения флагов
...
Рейтинг: 0 / 0
06.08.2012, 17:11
    #37906060
Злой Бобр
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
подскажите по проектированию
Добавь поле FLAG в таблицу POS. Если строк немного то по идее таблица FLAGS вообще ненужна, все можно брать из POS.
...
Рейтинг: 0 / 0
06.08.2012, 22:01
    #37906433
sergq
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
подскажите по проектированию
Злой Бобр,

таблица flags это почти отдельная сущность, если сравнивать с pos.
Это практически две подсистемы, которые могут существовать поотдельности
...
Рейтинг: 0 / 0
07.08.2012, 18:46
    #37907817
Злой Бобр
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
подскажите по проектированию
sergq,

Вопрос был о том что "надо сохранить все значения. и соответственно чтобы выдавало за разные года разные значения флагов". Ответ я тебе дал: "Добавь поле FLAG в таблицу POS."
...
Рейтинг: 0 / 0
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / подскажите по проектированию / 14 сообщений из 14, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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