|
неопределенность дат (философское)
|
|||
---|---|---|---|
#18+
Друзья, В колонке даты иногда известен только год. Не заводить же отдельно xxxDate и xxxYear. Прошу высказаться. Кроме того, я понимаю, что "тут дельфи никто не знает". И все-таки, если есть решение на ниве дельфи - напишите please. ... |
|||
:
Нравится:
Не нравится:
|
|||
09.06.2016, 13:06 |
|
неопределенность дат (философское)
|
|||
---|---|---|---|
#18+
HS, так в чем проблема? Нужен в отдельном поле признак того, введена ли дата полностью или только год или только месяц+год? ... |
|||
:
Нравится:
Не нравится:
|
|||
09.06.2016, 13:10 |
|
неопределенность дат (философское)
|
|||
---|---|---|---|
#18+
Нихрена не понял. Вопрос-то в чем? ... |
|||
:
Нравится:
Не нравится:
|
|||
09.06.2016, 13:14 |
|
неопределенность дат (философское)
|
|||
---|---|---|---|
#18+
Код: plsql 1.
? ... |
|||
:
Нравится:
Не нравится:
|
|||
09.06.2016, 13:15 |
|
неопределенность дат (философское)
|
|||
---|---|---|---|
#18+
Ivan_Pisarevsky, ИНОГДА в дате известен только год. Месяц и день нет. Кто виноват? Что делать? Хранить 2016/0/0 в виде даты мне ж ФБ не даст. Заводить дополнительно поле Год? Хранить в виде char? Условиться, что 2016/1/1=ГОД_НЕ_ИЗВЕСТЕН? Считайте, что это опрос. Ваше мнение важно для меня (без иронии). ... |
|||
:
Нравится:
Не нравится:
|
|||
09.06.2016, 13:35 |
|
неопределенность дат (философское)
|
|||
---|---|---|---|
#18+
HS, просто выводи дату в другой формате, т.е. маскируй её. Маску можешь хранить в соседнем поле. В триггере в зависимости от маски можешь менять дату так чтобы туда писалось 01.01.xxxx ... |
|||
:
Нравится:
Не нравится:
|
|||
09.06.2016, 13:37 |
|
неопределенность дат (философское)
|
|||
---|---|---|---|
#18+
Меня бы устроил кумпанент дельфи принимающий два поля - xxxDate и xxxYear - и пишущий в них в зависимости от заполнения. Но что-то я сомневаюсь ((( ... |
|||
:
Нравится:
Не нравится:
|
|||
09.06.2016, 13:46 |
|
неопределенность дат (философское)
|
|||
---|---|---|---|
#18+
Если в дате может быть известен только год, то это и не дата вовсе. А что именно это такое - надо читать ТЗ. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
09.06.2016, 13:46 |
|
неопределенность дат (философское)
|
|||
---|---|---|---|
#18+
HSЗаводить дополнительно поле Год?Я бы так и сделал. + триггерная обвязка ... |
|||
:
Нравится:
Не нравится:
|
|||
09.06.2016, 13:47 |
|
неопределенность дат (философское)
|
|||
---|---|---|---|
#18+
Dimitry Sibiryakov, Например дата рождения. Известна полностью/известен только год/неизвестна вовсе. ... |
|||
:
Нравится:
Не нравится:
|
|||
09.06.2016, 13:51 |
|
неопределенность дат (философское)
|
|||
---|---|---|---|
#18+
Если известен только год - оно и есть год. Если нужен какой-то диапазон из дат на основе этого года, то для этого есть extract() или вычислимые поля или триггера к примеру - по разному можно извратится. То же самое относится и к месяцу. ... |
|||
:
Нравится:
Не нравится:
|
|||
09.06.2016, 13:54 |
|
неопределенность дат (философское)
|
|||
---|---|---|---|
#18+
HSдополнительно поле Год?Даже не дополнительно год, а например 8 символов вида YYYYMMDD если занесено 00000203, значит известна дата без года, если 20100000 то есть год, но нет дней. Хотя проще (и правильней с точки зрения теории) иметь рядом с датой 3 числовых поля и комбинировать их в зависимости от занесенности. ... |
|||
:
Нравится:
Не нравится:
|
|||
09.06.2016, 13:57 |
|
неопределенность дат (философское)
|
|||
---|---|---|---|
#18+
Автору - посмотри, как реализовано хранение в любом шедулере значений типа "каждый 5й день Июня" или "весь 3-й месяц 2016 года". ... |
|||
:
Нравится:
Не нравится:
|
|||
09.06.2016, 16:58 |
|
неопределенность дат (философское)
|
|||
---|---|---|---|
#18+
HS, А что предполагается делать с таким зверем "только год"? Например, если из даты рождения известен только год - 1950, и идет выборка: "Показать всех, кто родился в марте 1950" - показывать там такого человека или нет? Тот же вопрос повторить 12 раз по поводу каждого месяца. Если "да", то человек войдет во все 12 выборок. Если нет, не войдет ни в одну. И то и другое ерунда. Видимо, зверя "xx.xx.1950" нужно в определенном смысле понимать и хранить как некую валидную дату - например, 01.01.1950. Только отдельным полем хранить признак, что день и месяц здесь неизвестны, и соответственно отображать это при показе и редактировании. ... |
|||
:
Нравится:
Не нравится:
|
|||
09.06.2016, 17:48 |
|
неопределенность дат (философское)
|
|||
---|---|---|---|
#18+
ИМХО, поставленная ЗАКАЗЧЕГОМ задача из разряда: "напиши мне искусственный интеллект", которую ТС зачем-то пытается решить. а всё от неправильного (или непредусмотренного функционалом) проектирования базы на стадии первого внедрения. к примеру, на стадии внедрения для поля "адрес контрагента" предусматривается 255 символов, в которые операторы вколачивают всё, что бог на душу положит. вот вы знаете, как можно написать на слух улицу им.Кржижановского? внимание!!! опасно для мозка!! Коржи Жановского потом ЗАКАЗЧЕГ открывает для себя гугл-мапс и хочет "покрытие" клиентами на карте. для чего, естественно, ему нужно, чтобы адрес хранился уже в виде набора полей: 1) ID_TOWN 2) ID_STREET 3) HOUSE 4) CAB следовательно, следующие шаги на этапе внедрения доработки 1) заливаем в базу список городов 2) заливаем в базу список улиц 3) дорабатываем интерфейс таким образом, чтобы операторы ввода уже выбирали из списка. вопрос: а шо делать со старыми 27000 контрагентов? и тут уж пусть решает заказчег из следующего набора вариантов: а) "с завтрашнего дня живём по новому." б) "мне старые 27000 контрагентов дороги, как память." как оперативная память. тогда: б.1) мы конечно поможем и скриптом по подстроке попытаемся обработать адреса контрагентов в базе с целью забить автоматически в новом формате. из 27000 приблизительно 18500 лягут в базу как надо. б.2) ЗАКАЗЧЕГ нанимает абизяну (мы её специально обучим), которая перепроверит все адреса в базе. месяца за три. ----------- обратите внимание: либо валидацией данных занимаются homo-sapines, либо старые данные принимаются "как есть". а написание искусственного интеллекта - это не сюда. хотя, можно и сюда, но уже за ДРУГИЕ деньги. ----------- но всё вышеизложенное - полная фигня. жизнь гораздо интереснее! к примеру, когда после валидации данных абизяной начинается компания по массовому переименованию улиц. тут конечно всё просто: - добавляем в таблицу STREETS поле NEW_NAME. но зато какие интересные логические коллизии при этом возникают! к примеру, распечатать договор по состоянию на 01 марта 2014 года. =) ... |
|||
:
Нравится:
Не нравится:
|
|||
09.06.2016, 18:32 |
|
неопределенность дат (философское)
|
|||
---|---|---|---|
#18+
PEAKTOPк примеру, распечатать договор по состоянию на 01 марта 2014 года. =)А для таких вещей изобретено, что все итоговые документы хранятся не только со ссылками на на Id из справочника, но и со значениями (и иногда даже в виде офисного файла потому что компоненты формирования doc/xls/pdf/etc обновились и теперь "оно выглядит не так как я помню"). Но это после того как ты пару раз таки наталкиваешся на "а сделай мне по состоянию на тогда". ... |
|||
:
Нравится:
Не нравится:
|
|||
10.06.2016, 12:13 |
|
неопределенность дат (философское)
|
|||
---|---|---|---|
#18+
Иногда бывает, что известен (логически необходим) только год, иногда - год и месяц. Довольно удобно для таких случаев делать отдельные числовые поля (SMALLINT например). Я их, бывает, называю YEAR_OF и MONTH_OF (не заполнены - -1 - можно по умолчанию). При желании свормировать дату (период дат) элементарно, а зачастую поля используются в запросах напрямую. ... |
|||
:
Нравится:
Не нравится:
|
|||
10.06.2016, 12:22 |
|
неопределенность дат (философское)
|
|||
---|---|---|---|
#18+
Andrey_PEAKTOPк примеру, распечатать договор по состоянию на 01 марта 2014 года. =)А для таких вещей изобретено, что все итоговые документы хранятся не только со ссылками на на Id из справочника, но и со значениями ладно, согласен, пример неудачный. более близкий пример к парсингу стрингов с адресами и попытке написать "искусственный интеллект". как было сказано ранее, из 27000 адресов 18500 легли, как надо. вопрос: а шо же не так с оставшимися 8500 адресами? да, безусловно, в базе были грамматические ошибки. это - таки да, не знаю сколько, но где-то на глазок около 10..15% от 8500 штук. а оставшиеся... вот тут интересно: адреса были в формате "г.Краматорск, ул.Ленина, д.-1, кв.-1" или "г.Славянск, ул.Юных Коммунаров, д.-1, кв.-1". но! в городе Краматорске есть: 1) бульвар Краматорский, расположен самом густонаселённом спальном районе 2) улица Славянская 3) переулок Славянский в городе Славянск есть: 1) улица Краматорская оператор ввода вполне может пропустить в адресе "ул." или "бул." а теперь, уважаемые знатоки, внимание, вопрос: и как писать парсер для таких случаев? =) ---------- специально обученная абизяна справляется с этим за три месяца вручную. но это 1) проблемы ЗАКАЗЧЕГА и 2) за деньги ЗАКАЗЧЕГА. ... |
|||
:
Нравится:
Не нравится:
|
|||
10.06.2016, 13:35 |
|
неопределенность дат (философское)
|
|||
---|---|---|---|
#18+
PEAKTOP, Прекращай уже слова коверкать. ... |
|||
:
Нравится:
Не нравится:
|
|||
10.06.2016, 14:20 |
|
неопределенность дат (философское)
|
|||
---|---|---|---|
#18+
WildSeryPEAKTOP, Прекращай уже слова коверкать. ЗАКАЗЧЕГ - это сложившееся (среди IT в нашей местности) обезличенное название предприятия/компании заказчика. как говорится, "без имен и званий". просто, есть ЗАКАЗЧЕГ, который платит деньги и заказывает музыку. о чём идет речь - все понимают и заодно не уточняют, как зовут, кто такой. если бы я хотел - сказал бы прямо "ООО СтройПромТоргВсё", а так... ЗАКАЗЧЕГ. то есть никто. я извиняюсь, если кого-то обидел, но это не использование языка "падонкофф", это просто такой обезличенный термин. ... |
|||
:
Нравится:
Не нравится:
|
|||
10.06.2016, 14:27 |
|
неопределенность дат (философское)
|
|||
---|---|---|---|
#18+
Кроме улиц, могут и города менять название. Также они могут вообще исчезать как самостоятельная единица (вливаться в другие, например). И с домом та же ерунда. А еще дом может иметь два адреса, если стоит на перекрестке :). По сабжу: одним полем не обойтись, имхо. Разве что применить какие-то особо извращенные шаманства вроде помещения в TIMESTAMP временной части с особым магическим значением, которое будет указывать на неизвестность месяца и дня. В зависимости от целей можно предложить: а) хранить год и день года - тогда придется писать ХП получения месяца и дня месяца, включая обработку високосных годов б) хранить год, месяц и день - нужен контроль корректности на вводе в) хранить год и полную дату, год заполнять в триггере при вводе даты Что касается клиентской программы: а) можно добавить computed поле б) можно добавить в запрос комбинированное computed поле, а сохранять изменения своей обработкой в) можно повесить на поле обработчики Код: pascal 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14.
... |
|||
:
Нравится:
Не нравится:
|
|||
10.06.2016, 14:50 |
|
неопределенность дат (философское)
|
|||
---|---|---|---|
#18+
Го-стхивключая обработку високосных годов Серьезное возражение против хранения год/месяц/день как smallint, считаю. ... |
|||
:
Нравится:
Не нравится:
|
|||
10.06.2016, 16:21 |
|
неопределенность дат (философское)
|
|||
---|---|---|---|
#18+
HS, да ладно. при вводе всех трех столбцов (год, месяц, день) нужно контролировать дату на корректность. Это и при вводе с клиента можно сделать. А при вводе дня+месяца можно контролировать на 29-30-31. ... |
|||
:
Нравится:
Не нравится:
|
|||
10.06.2016, 16:34 |
|
неопределенность дат (философское)
|
|||
---|---|---|---|
#18+
PEAKTOP, PEAKTOP2) заливаем в базу список улиц В богоспасаемых|богомерзких штатах вроде не болеют справочниками улиц и домов. И даже хранят Street в виде line1, line2, line3. Есть здесь кто фром Silicon Valley? Это в Российской Федерации пилят всяческие государственные реестры всего-что-только-может-быть. Модератор: Исправлено. Не надо оскорблять всю Россию, даже если она тебе не нравится. Если ты guest, это не значит, что тебя нельзя забанить за такие хулиганства, вместе со всем Лондоном. ... |
|||
:
Нравится:
Не нравится:
|
|||
10.06.2016, 16:37 |
|
|
start [/forum/topic.php?fid=40&startmsg=39253543&tid=1562135]: |
0ms |
get settings: |
10ms |
get forum list: |
14ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
47ms |
get topic data: |
13ms |
get forum data: |
3ms |
get page messages: |
69ms |
get tp. blocked users: |
1ms |
others: | 265ms |
total: | 430ms |
0 / 0 |