Вход | Регистрация
 

Сегодня придумал, как хранить в одном поле три значения - Да, ложь и неопределено

↓ [Asmody, 19.11.08 - 17:07]
Сегодня придумал, как хранить в одном поле три значения - Да, ложь и неопределено
Я
   Гений 1С
 
19.11.08 - 16:02
Для этого нужно юзать составной тип, в состав которого входит только один тип - булево.
   Stepa86
 
1 - 19.11.08 - 16:04
Про флажок с тремя состояниями слышал???
   vde69
 
2 - 19.11.08 - 16:06
я догадался кто автор!!!!

а нафига? ведь составной тип и места жрет и медленее работает, проще число хранить
   tsr
 
3 - 19.11.08 - 16:06
(1) Тьфу на тебя. Все испортил. Тут уже очередь выстроилась гению аплодировать
   Живой Ископаемый
4 - 19.11.08 - 16:06
больше неопределенностей, хороших и разных... Лапиталя на вас нет, ироды!
   Defender aka LINN
 
5 - 19.11.08 - 16:07
Да создайте вы уже Гению отдельную секцию...
   Aprobator
 
6 - 19.11.08 - 16:07
(2) как нафига? На работе заняться нечем, вот и лезет в голову всякая хрень.
   Aprobator
 
7 - 19.11.08 - 16:08
(5) и забор вокруг этой секции не забыть, чтоб не вылез.
   Garlic
 
8 - 19.11.08 - 16:08
(5)О!
   Rebelx
 
9 - 19.11.08 - 16:11
я тоже как-то сразу угадал автора.
однако вопрос к автору: а ты пробовал сделать составной тип с единственным типом?
   Ленинград
 
10 - 19.11.08 - 16:11
)))жжоте каждый день
птрююю
   hhhh
 
11 - 19.11.08 - 16:15
(5) Гениев надо беречь
   Fragster
 
12 - 19.11.08 - 16:16
судя по набору значений - это перечисление со значениями "Да", "Ложь" и "Неопределено"...
   Господин ПЖ
 
13 - 19.11.08 - 16:17
(0) ты эту хрень по 50 раз в день на SMS и высылаешь?
   Hitcher
 
14 - 19.11.08 - 16:20
Тогда я придумал новые значения булево:)

Военное булево "Так точно", "Никак нет".
Женское булево "Ни да, ни нет"
   Aprobator
 
15 - 19.11.08 - 16:21
(12) Выбор из списка 1 2 3 со своими представлениями. Хотя, может имеется ввиду одновременное хранение :))).
   ShoGUN
 
16 - 19.11.08 - 16:22
(14) Женское булево - "Может быть"
   Fragster
 
17 - 19.11.08 - 16:24
(15) битовая маска? тогда силен ;)
   LamerSuper
 
18 - 19.11.08 - 16:24
Есть сопособ хранить в одном поле 2 147 484 646 градаций сосотояния да...нет.
   LamerSuper
 
19 - 19.11.08 - 16:25
Пардон 2 147 483 646
   zag2art
 
20 - 19.11.08 - 16:25
Топикстартер говорит про "Да, ложь и неопределено" и булевый тип. Интересно где здесь "Истина" затесалась....
   YauheniL
 
21 - 19.11.08 - 16:26
(0) В С используются константы, определенные define для этих целей (соответсвенно в 1с можно числа приспособить).

А еще можно перечисление создать
   ShoGUN
 
22 - 19.11.08 - 16:27
(20) "Я в жизни прочитал три книги - букварь, вторую и зеленую"(с)
   КонецЦикла
 
23 - 19.11.08 - 16:28
Узнал автора как всегда
И как всегда жесть...
   nop
 
24 - 19.11.08 - 16:29
(0) И как мы без этого писали?
   Vitello
 
25 - 19.11.08 - 16:32
(24)Так мы ж темнота...
   globalasax
 
26 - 19.11.08 - 16:32
(0) имеет смысл для хранения числа, т.к. значение 0 не всегда означает, что значение не указано.
   AlexSSSS
 
27 - 19.11.08 - 16:33
(0) как и все сразу понял кто автор
и как обычно - очередная кучка мозгового дерьмеца
   nop
 
28 - 19.11.08 - 16:36
(26) 0 -он во всех языках всегда был 0 когда не указанно. А в некоторых "не указано" может быть равно любому числу, - зависит от того была ли очищена память после выделения под переменную
   Гений 1С
 
29 - 19.11.08 - 16:36
(0) Сори - лажанулся, действительно составной тип только из булеов не получишь. Идея была в чем - есть реквизит типа булево, уже заполнен, чтобы не менять на числовой в базе и не менять алгоритмы поменять на составной.. ;-)
   Гений 1С
 
30 - 19.11.08 - 16:37
(16) Про женскую логику - жесть
 
 Рекламное место пустует
   rs_trade
 
31 - 19.11.08 - 16:38
(26) читай выше - составной тип, в состав которого входит только один тип - булево. нету тут чисел...
   AlexSSSS
 
32 - 19.11.08 - 16:38
(29) видно осенний спермотосикоз дошел до высшей точки....
   Живой Ископаемый
33 - 19.11.08 - 16:38
28, и в СКЛе тоже?
   Serg_1960
 
34 - 19.11.08 - 16:44
Автор "гениально" умеет народ заводить с пол-оборота. Один раз вякнул - а эхо до сих пор в ушах звенит...
Общий диагноз: аллергия на гения :)
   nop
 
35 - 19.11.08 - 16:45
(33) естественно что нет. В SQL - тоже нет "не заполнено", если я не ошибаюсь, всегда 0, если тип поля числовой
   Fragster
 
36 - 19.11.08 - 16:45
(35) в скуле есть значение NULL
   nop
 
37 - 19.11.08 - 16:46
(36) Поле типа Integer может иметь значение NULL ?
   vde69
 
38 - 19.11.08 - 16:47
(36) это не значение и не тип
   luns
 
39 - 19.11.08 - 16:47
(34) Да не... он классный, мы всегда с интересом следим за его творчеством.. Вот был бы он политиком был бы... ну вы знаете.
Вон товарищь рядом сидит и ржот... от пятничных веток обычно меньше...
   ShoGUN
 
40 - 19.11.08 - 16:48
(35) В SQL есть Null, он может быть в полях любого типа. Его можно запретить, но только для конкретных полей.
   Fragster
 
41 - 19.11.08 - 16:48
(37) не знаю, как MSSQL, но в MySQL - может
   vde69
 
42 - 19.11.08 - 16:48
(37)
на мой взгляд самый близкая расшифровка
NULL - отсутствие поля
   Живой Ископаемый
43 - 19.11.08 - 16:49
(37) ну как, почитал ответы?
   nop
 
44 - 19.11.08 - 16:50
(40) надо бы запретить по умолчанию. Нафига лишний байт для каждого поля каждой записи. Ещё и постоянная проверка поля таблицы на то может ли он содержать НУЛ, и содержит ли его запись.
   Fragster
 
45 - 19.11.08 - 16:51
(44) запрещай...
   ShoGUN
 
46 - 19.11.08 - 16:51
(42) Ну вообще-то NULL - это как раз значение :) Неопределенное значение. Хотя это вопрос терминологии... Общая интерпретация такого значения - отсутствует. Конкретная интерпретация зависит от назначения поля.
   Живой Ископаемый
47 - 19.11.08 - 16:52
(44) Как будто типовых ни разу не видел.. Да, постоянно и проверяют...
   nop
 
48 - 19.11.08 - 16:53
(47) Для меня 0 и НУЛ - одно и то же значение
   ShoGUN
 
49 - 19.11.08 - 16:54
(44) В 1с-овских таблицах как раз NULL не используется, поэтому оно и возникает только в случае JOIN-ов в запросах.
   Живой Ископаемый
50 - 19.11.08 - 16:54
(48) ага, и предложению ИТОГ - разные...
   Fragster
 
51 - 19.11.08 - 16:55
(48) ну хорошо, вот Найти() нумерует символы с 0... а если не нашло - возвращает аналог NULL - Неопределено...
   ShoGUN
 
52 - 19.11.08 - 16:55
(48) А если поле - не числовое, а типа DateTime или строка? Или вообще BLOB?
   nop
 
53 - 19.11.08 - 16:59
(52) Есть диапазон допустимых значений для переменной. Например 0 - недопустимое. DateTime = 0 - не заполнено, строка - байт длинны строки (для перемнных) = 0 - не заполнено, для постоянных - отсутствие символа с кодом 0 в первом байте строки.
BLOB - аналогично строке переменной длинны имеет заголовок с размером "объекта".
   ShoGUN
 
54 - 19.11.08 - 17:01
(53) Ты не проектировщик СУБД часом? :)
   nop
 
55 - 19.11.08 - 17:01
(51) Всякие НУЛЫ, НЕОПРЕДЕЛЕНО - это от лукавого. Это приколы конкретной библиотеки или среды разработки. Можно например вместо НЕОПРЕДЕЛЕНО - найти вернуть число 0
   vde69
 
56 - 19.11.08 - 17:02
кстати дискусия вполне грамотная пошла, ничего что к сабжу не относиться!

мне нравиться такой подход к обсуждению гениАльных идей
   ShoGUN
 
57 - 19.11.08 - 17:02
+(54) И чем предложенное тобой отличается от NULL-значений? Я ж не знаю как они хранятся на физическом уровне. Может именно так, как ты описал?
   ShoGUN
 
58 - 19.11.08 - 17:04
(55) Не знаю, мне бы как-то странно было без неопределенных значений. По логике они иногда нужны бывают. А как они хранятся - это уж вопрос эффективности реализации конкретной СУБД.
   Живой Ископаемый
59 - 19.11.08 - 17:05
(56) Просто смысл привносить в тему личностное отношение? Мы ведь умеем абстрагироваться, в отличие от животных...
   nop
 
60 - 19.11.08 - 17:06
(54) баловался в универе. Зачем моим скромным программкам целый СКЛ ?
 
 Рекламное место пустует
   vde69
 
61 - 19.11.08 - 17:08
(57) SQL хранит это дело страницами, в каждой странице одна или несколько строк таблици, строка не фиксированой длинны, для каждого поля используються разделителиОписатели, если его нету - это м есть null,
тоесть это когда в структуре есть поле а в данных строки его физически нету
   trad
 
62 - 19.11.08 - 17:08
А еще замечено, что NULL похож на черную дыру.
NULL всасывает в себя со всех сторон все материальные значения и не позволяет им покинуть себя.
Подтвержение тому:
1000 + NULL + 1000 - есть NULL
"Строка 1" + NULL + "Строка 2" - есть NULL

ps
нахождение NULL рядом с нормальными данными (особо типа ДатаВремя) искажает их. Будте внимательны!

:))
   ShoGUN
 
63 - 19.11.08 - 17:09
(60) Просто я к тому, что ты слишком много внимания более низкому уровню уделяешь. И мало внимания прикладным задачам. А они ой какие разные бывают, логика может быть самой причудливой, и неопределенные значения далеко не всегда лишние.
   Bober
 
64 - 19.11.08 - 17:10
(0) Интересно, как ты добился, чтобы реквизиту назначался составной тип состоящий из одного типа.
А что делать с ОписаниеТипов при ПривестиЗначение?
   vde69
 
65 - 19.11.08 - 17:11
(61) NULL для кода - это указатель на $FFFFFFF такого адреса памяти не существует
   Живой Ископаемый
66 - 19.11.08 - 17:13
(64) Он и не добился.. Думал, что добился...
   nop
 
67 - 19.11.08 - 17:13
(57) Выходит что для хранения NULL используется либо 1 бит из поля-владельца (что то же самое что диапазон значений - 1значение), либо дополнительное целое поле длинной в 8 бит, либо в конце записи (данных полей) БД служебная запись длинной в количество_колонок записи (данных полей). Последние по моему самый лучший вариант
   nop
 
68 - 19.11.08 - 17:14
(65) Интерпретаторов это не касается
   vde69
 
69 - 19.11.08 - 17:15
(67) для хранения в базе SQL значения NULL используеться 0бит см (61), а в памяти это обычный указатель (вроде 4 байта)
   Bober
 
70 - 19.11.08 - 17:15
(64) -> (29) теорию загубил опыт
   Джинн
 
71 - 19.11.08 - 17:16
(5) Лучше отдельный Интернет.
   nop
 
72 - 19.11.08 - 17:17
(69) вникаю ... (покурю пока)
   nop
 
73 - 19.11.08 - 17:29
vde69 я не пойму одного: если тип значения поля определен не как ссылочный, а как элементарный (строка, число, дата, булево) то каким образом после считывания с фиска (винчестера) выходит НУЛЬ ? Получается значит либо все типы ссылочные, либо у элементарных есть дополнительный байт, бит, запись ?
   ShoGUN
 
74 - 19.11.08 - 17:34
(73) Мы про 1с или про скуль? :) Если про последний, то какие там нафиг ссылочные типы?
   nop
 
75 - 19.11.08 - 17:37
(74) ссылочным я называю поле связующие одну таблицу с другой
   Ненавижу 1С
 
76 - 19.11.08 - 17:39
NULL нужен, а всякие Неопределено и пустые ссылки нах не надо
   ShoGUN
 
77 - 19.11.08 - 17:39
(75) Так оно числовым может быть. Легко. И GUID вроде тоже числовое значение... Я непонимаю, в чем вопрос? В конечном счете все типы данных - элементарные.
   ShoGUN
 
78 - 19.11.08 - 17:40
*(77)непонимаю - не понимаю
   nop
 
79 - 19.11.08 - 17:46
(77) "В конечном счете все типы данных - элементарные."
отож! и где НУЛ и как хранится - непонятно
   ShoGUN
 
80 - 19.11.08 - 17:52
(79) Ну я верю vde69 в (61). То бишь для каждого поля есть еще и описатель. Если по-твоему изъясняться, то получается, что "все типы ссылочные". Или я че-то не понимаю.
   nop
 
81 - 19.11.08 - 17:57
(80) Я тоже понимаю так что ссылочные
   КонецЦикла
 
82 - 19.11.08 - 20:53
Пепец знатоки епвашумать
Откройте книгу по MS SQL да прочитайте
   ShoGUN
 
83 - 19.11.08 - 21:01
(82) У меня есть талмуд :) Дело-то не в этом.
   nop
 
84 - 20.11.08 - 10:37
(82) нах надо, оно и без меня 100 лет нормально работает


Список тем форума
Рекламное место пустует  Рекламное место пустует
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.
Ветка сдана в архив. Добавление сообщений невозможно.
Но вы можете создать новую ветку и вам обязательно ответят!
Каждый час на Волшебном форуме бывает более 2000 человек.