powered by simpleCommunicator - 2.0.59     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / Нужна ли колонка id в моем случае?
31 сообщений из 31, показаны все 2 страниц
Нужна ли колонка id в моем случае?
    #38646019
ldar
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Планирую быстрорастущую таблицу, поэтому для экономии места обдумываю нужен ли мне в таблице уникальный идентификатор.
Таблица вида:

| id | id_tag | datetime | value |

По сути колонки id_tag в сочетании с datetime определяют уникальность поля.
id этой таблицы никак не планируется связываться с другими таблицами.
Просто сомневаюсь, может эта колонка необходима для служб базы данных.
Спасибо.
...
Рейтинг: 0 / 0
Нужна ли колонка id в моем случае?
    #38646045
П-Л
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
СлучАи они разные бывают.

Только суррогаты! Только автосчетчики достойны быть ПК! Только так и никак иначе!
...
Рейтинг: 0 / 0
Нужна ли колонка id в моем случае?
    #38646057
ldar
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
П-Л, WTF?
Можно поподробней?
...
Рейтинг: 0 / 0
Нужна ли колонка id в моем случае?
    #38646063
П-Л
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Войны суррогаты vs естественные ключи вас минули ?
...
Рейтинг: 0 / 0
Нужна ли колонка id в моем случае?
    #38646086
Кот Матроскин
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ldarПо сути колонки id_tag в сочетании с datetime определяют уникальность поля.
id этой таблицы никак не планируется связываться с другими таблицами.
Просто сомневаюсь, может эта колонка необходима для служб базы данных.
Спасибо.
Для "служб базы данных" суррогатный ключ не нужен. Если все так, как Вы говорите - сочетание полей уникально, никаких внешних ключей на эту таблицу не будет - да, суррогат бесполезен, вполне можете его не делать.
...
Рейтинг: 0 / 0
Нужна ли колонка id в моем случае?
    #38646098
Фотография vmag
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ldarПо сути колонки id_tag в сочетании с datetime определяют уникальность поля.
id этой таблицы никак не планируется связываться с другими таблицами.

Тут определяется уникальность записи (строки таблицы), а не уникальность поля и если вас всё это устраивает по функционалу, то работайте без id, а на тот случай, если припрет, то всегда можно создать такую же таблицу по структуре + id и переписать туда данные, которые уже будут иметь id, затем старую таблицу заменить на новую.... но лично я в каждой таблице всегда делаю id автоматический счетчик-ключ, даже в связующих таблицах, потом проще - при выделении значения в элементе управления - сразу однозначно идентифицируешь ключ записи которая подлежит: удалению, изменению и т.д.
...
Рейтинг: 0 / 0
Нужна ли колонка id в моем случае?
    #38646122
Фотография softwarer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ldarПо сути колонки id_tag в сочетании с datetime определяют уникальность поля.
А потом наступает последнее воскресенье октября и в вашей системе случается локальный п-ц.

ldarПросто сомневаюсь, может эта колонка необходима для служб базы данных.
Для "служб базы данных" никакая колонка не необходима, а если какая необходима - они их делают сами и обычно скрытыми.
...
Рейтинг: 0 / 0
Нужна ли колонка id в моем случае?
    #38646159
ldar
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Спасибо.
Просто у меня таблица планируется с большими данными, возможны миллиарды строк и размер одной колонки сыграет существенную роль. Причем данные не будут изменятся, а удалятся только по диапазону дат, ну и планирую партицирование по дате.
В основном будет только выборка по диапазону дат date_time и id_tag.
softwarer,
"А потом наступает последнее воскресенье октября и в вашей системе случается локальный п-ц."
Что под этим подразумевали?
...
Рейтинг: 0 / 0
Нужна ли колонка id в моем случае?
    #38646173
miksoft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ldar,

Опишите суть поля id_tag.
И с какой дискретностью ваша СУБД хранит тип datetime ?
...
Рейтинг: 0 / 0
Нужна ли колонка id в моем случае?
    #38646207
ldar
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
miksoftldar,

Опишите суть поля id_tag.

id_tag - идентификатор измеряемой величины.
miksoftИ с какой дискретностью ваша СУБД хранит тип datetime ?
>=500мс
...
Рейтинг: 0 / 0
Нужна ли колонка id в моем случае?
    #38646223
Naf
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
если внешних ключей на эту таблицу не планируется, то можно не делать
...
Рейтинг: 0 / 0
Нужна ли колонка id в моем случае?
    #38646226
miksoft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ldarid_tag - идентификатор измеряемой величины.Это понятно. Как он генерируется, какая разрядность и т.п. ?

ldar>=500мсЧто-то странно, обычно шаг либо целая секунда, либо значительно более мелкие величины, например, 1 мс.
Что за СУБД?
...
Рейтинг: 0 / 0
Нужна ли колонка id в моем случае?
    #38646269
ldar
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
miksoftКак он генерируется, какая разрядность и т.п. ?

Это первичный ключ другой таблицы, отношение "один ко многим" в той таблице поле является уникальным целым числом, описывает сущность измеряемой величины.
miksoftЧто-то странно, обычно шаг либо целая секунда, либо значительно более мелкие величины, например, 1 мс.
Что за СУБД?

Я может не так Вас понимаю, я имею ввиду временной шаг между записями одного тега
id_tag | date_time
----------------
1 | ...500 мс
2 | ...500 мс
3 | ...500 мс
1 | ...1000 мс
2 | ...1000 мс
3 | ...1000 мс
1 | ...1500 мс
2 | ...1500 мс
3 | ...1500 мс
Менее 500 мс, нет надобности.
...
Рейтинг: 0 / 0
Нужна ли колонка id в моем случае?
    #38646271
ldar
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
miksoft, СУБД Postgresql
...
Рейтинг: 0 / 0
Нужна ли колонка id в моем случае?
    #38646274
miksoft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ldar,

Ну так а СУБД сможет хранить эти 1500 мс? Вы уверены, что они не превратятся в 1000 или 2000 ?
...
Рейтинг: 0 / 0
Нужна ли колонка id в моем случае?
    #38646289
ldar
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
miksoftldar,

Ну так а СУБД сможет хранить эти 1500 мс? Вы уверены, что они не превратятся в 1000 или 2000 ?
Согласно мануалу
resolution timestamp = 1 microsecond
вроде не должно.
...
Рейтинг: 0 / 0
Нужна ли колонка id в моем случае?
    #38646290
miksoft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ldarmiksoft, СУБД PostgresqlЗабавно, но у Postgresql нет типа данных datetime. Но у тех типов, которые есть (кроме date), разрешение 1 мкс, так что тут все нормально.
...
Рейтинг: 0 / 0
Нужна ли колонка id в моем случае?
    #38646299
miksoft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ldarsoftwarer,
"А потом наступает последнее воскресенье октября и в вашей системе случается локальный п-ц."
Что под этим подразумевали?Сначала я думал, что имеется в виду какая-то общая ситуация, которая возникает очень редко, но по закону подлости не может не возникнуть рано или поздно, и которая приведет к нарушению естественного первичного ключа. Но потом подумал, что речь о более конкретной ситуации - о переводе времени на зимнее/летнее время.

Т.е. еще нужно разобраться с природой поля datetime и с его часовыми поясами и летними/зимними зонами.
...
Рейтинг: 0 / 0
Нужна ли колонка id в моем случае?
    #38646307
ldar
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Спасибо за помощь.
...
Рейтинг: 0 / 0
Нужна ли колонка id в моем случае?
    #38646328
ldar
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
miksoftТ.е. еще нужно разобраться с природой поля datetime и с его часовыми поясами и летними/зимними зонами.
А что при переводе времени как то меняет значения timestamp в БД?
Всегда считал, что время хранится по UTC, а при выборке переводит в нужный часовой пояс.
...
Рейтинг: 0 / 0
Нужна ли колонка id в моем случае?
    #38646359
miksoft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ldarmiksoftТ.е. еще нужно разобраться с природой поля datetime и с его часовыми поясами и летними/зимними зонами.
А что при переводе времени как то меняет значения timestamp в БД?
Всегда считал, что время хранится по UTC, а при выборке переводит в нужный часовой пояс.В Postgresql тип данных timestamp имеет две разновидности - without time zone и with time zone. Очевидно, что они ведут себя в этом вопросе по разному.
См. http://www.postgresql.org/docs/9.3/static/datatype-datetime.html
...
Рейтинг: 0 / 0
Нужна ли колонка id в моем случае?
    #38646364
Кот Матроскин
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ldarmiksoftТ.е. еще нужно разобраться с природой поля datetime и с его часовыми поясами и летними/зимними зонами.
А что при переводе времени как то меняет значения timestamp в БД?
Всегда считал, что время хранится по UTC, а при выборке переводит в нужный часовой пояс.

в базе при переводе времени ничего не меняется - просто у Вас есть измерение за 02:00:00, а через час случается еще одно измерение, и снова за 02:00:00, поскольку часы перевели на час назад.
...
Рейтинг: 0 / 0
Нужна ли колонка id в моем случае?
    #38647049
0542
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Нужна ли колонка id в моем случае?

да забей

потом она пригодцца...)))
100500-т раз
себе спасибо скажешь

все стесняюся спросить - счётчик чо-ль??
...
Рейтинг: 0 / 0
Нужна ли колонка id в моем случае?
    #38647165
guest_20040621
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Ответ на ваш вопрос - нет, судя по написанному, идентификатор не нужен. Однако, есть вопрос.

> таблица планируется с большими данными, возможны миллиарды строк

Поправьте, если я ошибся: раз в полсекунды регистрируется некоторое значение, в сутки - 172800 значений, в год - 63072000. Как бы не очень понятна задача, для которой теоретически необходима серия длиной в год. Вы делать-то с ней что намерены? Зачем для этого СУБД? Писать сырые данные в файловую систему будет гораздо менее затратно.
...
Рейтинг: 0 / 0
Нужна ли колонка id в моем случае?
    #38647604
ldar
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
0542Нужна ли колонка id в моем случае?

да забей

потом она пригодцца...)))
100500-т раз
себе спасибо скажешь

все стесняюся спросить - счётчик чо-ль??
Счетчик это по поводу значений?... Нее, сигналы с производственных датчиков.
Думаю если пригодится суррогат, поставлю. Пока нет надобности...
...
Рейтинг: 0 / 0
Нужна ли колонка id в моем случае?
    #38647624
ldar
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
guest_20040621Ответ на ваш вопрос - нет, судя по написанному, идентификатор не нужен. Однако, есть вопрос.

> таблица планируется с большими данными, возможны миллиарды строк

Поправьте, если я ошибся: раз в полсекунды регистрируется некоторое значение, в сутки - 172800 значений, в год - 63072000. Как бы не очень понятна задача, для которой теоретически необходима серия длиной в год. Вы делать-то с ней что намерены? Зачем для этого СУБД? Писать сырые данные в файловую систему будет гораздо менее затратно.
Эти значения необходимы для анализа производства, возможно год и не нужен будет, пол года точно и уникальных замеряемых величин будет около 1000. Согласен данных дохера. Только к примеру нужна выборка нескольких тэгов за определенный промежуток времени, в СУБД это решается быстро, а с файловой системой даже не могу предположить. Может совет есть?
И еще теги с малой дискретности собираю в отдельную базу, чтоб не нагружать основную...
...
Рейтинг: 0 / 0
Нужна ли колонка id в моем случае?
    #38648049
guest_20040621
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
> Эти значения необходимы для анализа производства

Это понятно. Мне кажется рациональной такая организация: в базе данных вы описываете те аспекты производства, которые влияют на технологические процессы. Сырьё и параметры его лабораторного анализа (которые меняются от партии к партии), варианты технологических процессов, персональный состав операторов, датчики, обслуживание оборудования и пр. Возможно, есть смысл там же держать и агрегаты показаний, - но это зависит уже от производственной специфики. А сами значения датчиков пишете в файлы с такой разбивкой, которая отражает эту самую производственную специфику. Неделя, месяц, квартал, - выбираете самый длинный интервал, который её отражает.

> пол года точно и уникальных замеряемых величин будет около 1000

Каким образом и для чего вам нужно одновременно обработать 30 млрд значений? Можете сформулировать задачу более определённо?
...
Рейтинг: 0 / 0
Нужна ли колонка id в моем случае?
    #38648294
ldar
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Агрегатные значения тоже храню в БД, агрегаты за минуту, час, смена, сутки.
guest_20040621>
Каким образом и для чего вам нужно одновременно обработать 30 млрд значений? Можете сформулировать задачу более определённо?
Одновременно они не нужны, только частями и то некоторые значения могут вообще не понадобятся.
А в чем выигрыш вашей идеи? Я по началу тоже рассматривал вариант хранить в файлах, но протестировал на СУБД, вроде проблем пока не обнаружил. Если брать СКАДА системы, они тоже хранят сырые данные в БД.
...
Рейтинг: 0 / 0
Нужна ли колонка id в моем случае?
    #38648323
guest_20040621
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
> Одновременно они не нужны, только частями и то некоторые значения могут вообще не понадобятся.

Тогда зачем их хранить в базе данных?

> А в чем выигрыш вашей идеи?

Это не идея, это очевидное решение. Выигрыш - в базе данных на 30 млрд значений меньше. Меньшие аппаратные требования, меньше времени на административные задачи, в файловой системе хранить сжатые данные очень просто.

> Если брать СКАДА системы, они тоже хранят сырые данные в БД

Вы хотите быть на кого-то похожим или рационально решить задачу?

Ни в коем случае не занимаюсь агитацией; ваш выбор решения, ваша ответственность за этот выбор.
...
Рейтинг: 0 / 0
Нужна ли колонка id в моем случае?
    #38648843
ldar
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
guest_20040621, интересно...Надо протестировать...
Я так понимаю у вас большой опыт в этом. Ответьте пожалуйста не несколько вопросов, в каком типе файлов лучше хранить, какой рациональный объем одного файла?
...
Рейтинг: 0 / 0
Нужна ли колонка id в моем случае?
    #38649255
guest_20040621
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
> Надо протестировать...

Возьмите данных с перспективой хотя бы на пару лет, посмотрите на штатную нагрузку, сделайте пару бэкапов/ресторов.

> у вас большой опыт в этом

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


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