![]() |
|
Сегодня придумал, как хранить в одном поле три значения - Да, ложь и неопределено ↓ (Asmody 19.11.2008 17:07) |
☑ | ||
---|---|---|---|---|
0
Гений 1С
гуру
19.11.08
✎
16:02
|
Для этого нужно юзать составной тип, в состав которого входит только один тип - булево.
|
|||
1
Stepa86
19.11.08
✎
16:04
|
Про флажок с тремя состояниями слышал???
|
|||
2
vde69
19.11.08
✎
16:06
|
я догадался кто автор!!!!
а нафига? ведь составной тип и места жрет и медленее работает, проще число хранить |
|||
3
tsr
19.11.08
✎
16:06
|
(1) Тьфу на тебя. Все испортил. Тут уже очередь выстроилась гению аплодировать
|
|||
4
Живой Ископаемый
19.11.08
✎
16:06
|
больше неопределенностей, хороших и разных... Лапиталя на вас нет, ироды!
|
|||
5
Defender aka LINN
19.11.08
✎
16:07
|
Да создайте вы уже Гению отдельную секцию...
|
|||
6
Aprobator
19.11.08
✎
16:07
|
(2) как нафига? На работе заняться нечем, вот и лезет в голову всякая хрень.
|
|||
7
Aprobator
19.11.08
✎
16:08
|
(5) и забор вокруг этой секции не забыть, чтоб не вылез.
|
|||
8
Garlic
19.11.08
✎
16:08
|
(5)О!
|
|||
9
Rebelx
19.11.08
✎
16:11
|
я тоже как-то сразу угадал автора.
однако вопрос к автору: а ты пробовал сделать составной тип с единственным типом? |
|||
10
Ленинград
19.11.08
✎
16:11
|
)))жжоте каждый день
птрююю |
|||
11
hhhh
19.11.08
✎
16:15
|
(5) Гениев надо беречь
|
|||
12
Fragster
гуру
19.11.08
✎
16:16
|
судя по набору значений - это перечисление со значениями "Да", "Ложь" и "Неопределено"...
|
|||
13
Господин ПЖ
19.11.08
✎
16:17
|
(0) ты эту хрень по 50 раз в день на SMS и высылаешь?
|
|||
14
Hitcher
19.11.08
✎
16:20
|
Тогда я придумал новые значения булево:)
Военное булево "Так точно", "Никак нет". Женское булево "Ни да, ни нет" |
|||
15
Aprobator
19.11.08
✎
16:21
|
(12) Выбор из списка 1 2 3 со своими представлениями. Хотя, может имеется ввиду одновременное хранение :))).
|
|||
16
ShoGUN
19.11.08
✎
16:22
|
(14) Женское булево - "Может быть"
|
|||
17
Fragster
гуру
19.11.08
✎
16:24
|
(15) битовая маска? тогда силен ;)
|
|||
18
LamerSuper
19.11.08
✎
16:24
|
Есть сопособ хранить в одном поле 2 147 484 646 градаций сосотояния да...нет.
|
|||
19
LamerSuper
19.11.08
✎
16:25
|
Пардон 2 147 483 646
|
|||
20
zag2art
19.11.08
✎
16:25
|
Топикстартер говорит про "Да, ложь и неопределено" и булевый тип. Интересно где здесь "Истина" затесалась....
|
|||
21
YauheniL
19.11.08
✎
16:26
|
(0) В С используются константы, определенные define для этих целей (соответсвенно в 1с можно числа приспособить).
А еще можно перечисление создать |
|||
22
ShoGUN
19.11.08
✎
16:27
|
(20) "Я в жизни прочитал три книги - букварь, вторую и зеленую"(с)
|
|||
23
КонецЦикла
19.11.08
✎
16:28
|
Узнал автора как всегда
И как всегда жесть... |
|||
24
nop
19.11.08
✎
16:29
|
(0) И как мы без этого писали?
|
|||
25
Vitello
19.11.08
✎
16:32
|
(24)Так мы ж темнота...
|
|||
26
globalasax
19.11.08
✎
16:32
|
(0) имеет смысл для хранения числа, т.к. значение 0 не всегда означает, что значение не указано.
|
|||
27
AlexSSSS
19.11.08
✎
16:33
|
(0) как и все сразу понял кто автор
и как обычно - очередная кучка мозгового дерьмеца |
|||
28
nop
19.11.08
✎
16:36
|
(26) 0 -он во всех языках всегда был 0 когда не указанно. А в некоторых "не указано" может быть равно любому числу, - зависит от того была ли очищена память после выделения под переменную
|
|||
29
Гений 1С
гуру
19.11.08
✎
16:36
|
(0) Сори - лажанулся, действительно составной тип только из булеов не получишь. Идея была в чем - есть реквизит типа булево, уже заполнен, чтобы не менять на числовой в базе и не менять алгоритмы поменять на составной.. ;-)
|
|||
30
Гений 1С
гуру
19.11.08
✎
16:37
|
(16) Про женскую логику - жесть
|
|||
31
rs_trade
19.11.08
✎
16:38
|
(26) читай выше - составной тип, в состав которого входит только один тип - булево. нету тут чисел...
|
|||
32
AlexSSSS
19.11.08
✎
16:38
|
(29) видно осенний спермотосикоз дошел до высшей точки....
|
|||
33
Живой Ископаемый
19.11.08
✎
16:38
|
28, и в СКЛе тоже?
|
|||
34
Serg_1960
19.11.08
✎
16:44
|
Автор "гениально" умеет народ заводить с пол-оборота. Один раз вякнул - а эхо до сих пор в ушах звенит...
Общий диагноз: аллергия на гения :) |
|||
35
nop
19.11.08
✎
16:45
|
(33) естественно что нет. В SQL - тоже нет "не заполнено", если я не ошибаюсь, всегда 0, если тип поля числовой
|
|||
36
Fragster
гуру
19.11.08
✎
16:45
|
(35) в скуле есть значение NULL
|
|||
37
nop
19.11.08
✎
16:46
|
(36) Поле типа Integer может иметь значение NULL ?
|
|||
38
vde69
19.11.08
✎
16:47
|
(36) это не значение и не тип
|
|||
39
luns
19.11.08
✎
16:47
|
(34) Да не... он классный, мы всегда с интересом следим за его творчеством.. Вот был бы он политиком был бы... ну вы знаете.
Вон товарищь рядом сидит и ржот... от пятничных веток обычно меньше... |
|||
40
ShoGUN
19.11.08
✎
16:48
|
(35) В SQL есть Null, он может быть в полях любого типа. Его можно запретить, но только для конкретных полей.
|
|||
41
Fragster
гуру
19.11.08
✎
16:48
|
(37) не знаю, как MSSQL, но в MySQL - может
|
|||
42
vde69
19.11.08
✎
16:48
|
(37)
на мой взгляд самый близкая расшифровка NULL - отсутствие поля |
|||
43
Живой Ископаемый
19.11.08
✎
16:49
|
(37) ну как, почитал ответы?
|
|||
44
nop
19.11.08
✎
16:50
|
(40) надо бы запретить по умолчанию. Нафига лишний байт для каждого поля каждой записи. Ещё и постоянная проверка поля таблицы на то может ли он содержать НУЛ, и содержит ли его запись.
|
|||
45
Fragster
гуру
19.11.08
✎
16:51
|
(44) запрещай...
|
|||
46
ShoGUN
19.11.08
✎
16:51
|
(42) Ну вообще-то NULL - это как раз значение :) Неопределенное значение. Хотя это вопрос терминологии... Общая интерпретация такого значения - отсутствует. Конкретная интерпретация зависит от назначения поля.
|
|||
47
Живой Ископаемый
19.11.08
✎
16:52
|
(44) Как будто типовых ни разу не видел.. Да, постоянно и проверяют...
|
|||
48
nop
19.11.08
✎
16:53
|
(47) Для меня 0 и НУЛ - одно и то же значение
|
|||
49
ShoGUN
19.11.08
✎
16:54
|
(44) В 1с-овских таблицах как раз NULL не используется, поэтому оно и возникает только в случае JOIN-ов в запросах.
|
|||
50
Живой Ископаемый
19.11.08
✎
16:54
|
(48) ага, и предложению ИТОГ - разные...
|
|||
51
Fragster
гуру
19.11.08
✎
16:55
|
(48) ну хорошо, вот Найти() нумерует символы с 0... а если не нашло - возвращает аналог NULL - Неопределено...
|
|||
52
ShoGUN
19.11.08
✎
16:55
|
(48) А если поле - не числовое, а типа DateTime или строка? Или вообще BLOB?
|
|||
53
nop
19.11.08
✎
16:59
|
(52) Есть диапазон допустимых значений для переменной. Например 0 - недопустимое. DateTime = 0 - не заполнено, строка - байт длинны строки (для перемнных) = 0 - не заполнено, для постоянных - отсутствие символа с кодом 0 в первом байте строки.
BLOB - аналогично строке переменной длинны имеет заголовок с размером "объекта". |
|||
54
ShoGUN
19.11.08
✎
17:01
|
(53) Ты не проектировщик СУБД часом? :)
|
|||
55
nop
19.11.08
✎
17:01
|
(51) Всякие НУЛЫ, НЕОПРЕДЕЛЕНО - это от лукавого. Это приколы конкретной библиотеки или среды разработки. Можно например вместо НЕОПРЕДЕЛЕНО - найти вернуть число 0
|
|||
56
vde69
19.11.08
✎
17:02
|
кстати дискусия вполне грамотная пошла, ничего что к сабжу не относиться!
мне нравиться такой подход к обсуждению гениАльных идей |
|||
57
ShoGUN
19.11.08
✎
17:02
|
+(54) И чем предложенное тобой отличается от NULL-значений? Я ж не знаю как они хранятся на физическом уровне. Может именно так, как ты описал?
|
|||
58
ShoGUN
19.11.08
✎
17:04
|
(55) Не знаю, мне бы как-то странно было без неопределенных значений. По логике они иногда нужны бывают. А как они хранятся - это уж вопрос эффективности реализации конкретной СУБД.
|
|||
59
Живой Ископаемый
19.11.08
✎
17:05
|
(56) Просто смысл привносить в тему личностное отношение? Мы ведь умеем абстрагироваться, в отличие от животных...
|
|||
60
nop
19.11.08
✎
17:06
|
(54) баловался в универе. Зачем моим скромным программкам целый СКЛ ?
|
|||
61
vde69
19.11.08
✎
17:08
|
(57) SQL хранит это дело страницами, в каждой странице одна или несколько строк таблици, строка не фиксированой длинны, для каждого поля используються разделителиОписатели, если его нету - это м есть null,
тоесть это когда в структуре есть поле а в данных строки его физически нету |
|||
62
trad
19.11.08
✎
17:08
|
А еще замечено, что NULL похож на черную дыру.
NULL всасывает в себя со всех сторон все материальные значения и не позволяет им покинуть себя. Подтвержение тому: 1000 + NULL + 1000 - есть NULL "Строка 1" + NULL + "Строка 2" - есть NULL ps нахождение NULL рядом с нормальными данными (особо типа ДатаВремя) искажает их. Будте внимательны! :)) |
|||
63
ShoGUN
19.11.08
✎
17:09
|
(60) Просто я к тому, что ты слишком много внимания более низкому уровню уделяешь. И мало внимания прикладным задачам. А они ой какие разные бывают, логика может быть самой причудливой, и неопределенные значения далеко не всегда лишние.
|
|||
64
Bober
19.11.08
✎
17:10
|
(0) Интересно, как ты добился, чтобы реквизиту назначался составной тип состоящий из одного типа.
А что делать с ОписаниеТипов при ПривестиЗначение? |
|||
65
vde69
19.11.08
✎
17:11
|
(61) NULL для кода - это указатель на $FFFFFFF такого адреса памяти не существует
|
|||
66
Живой Ископаемый
19.11.08
✎
17:13
|
(64) Он и не добился.. Думал, что добился...
|
|||
67
nop
19.11.08
✎
17:13
|
(57) Выходит что для хранения NULL используется либо 1 бит из поля-владельца (что то же самое что диапазон значений - 1значение), либо дополнительное целое поле длинной в 8 бит, либо в конце записи (данных полей) БД служебная запись длинной в количество_колонок записи (данных полей). Последние по моему самый лучший вариант
|
|||
68
nop
19.11.08
✎
17:14
|
(65) Интерпретаторов это не касается
|
|||
69
vde69
19.11.08
✎
17:15
|
(67) для хранения в базе SQL значения NULL используеться 0бит см (61), а в памяти это обычный указатель (вроде 4 байта)
|
|||
70
Bober
19.11.08
✎
17:15
|
(64) -> (29) теорию загубил опыт
|
|||
71
Джинн
19.11.08
✎
17:16
|
(5) Лучше отдельный Интернет.
|
|||
72
nop
19.11.08
✎
17:17
|
(69) вникаю ... (покурю пока)
|
|||
73
nop
19.11.08
✎
17:29
|
vde69 я не пойму одного: если тип значения поля определен не как ссылочный, а как элементарный (строка, число, дата, булево) то каким образом после считывания с фиска (винчестера) выходит НУЛЬ ? Получается значит либо все типы ссылочные, либо у элементарных есть дополнительный байт, бит, запись ?
|
|||
74
ShoGUN
19.11.08
✎
17:34
|
(73) Мы про 1с или про скуль? :) Если про последний, то какие там нафиг ссылочные типы?
|
|||
75
nop
19.11.08
✎
17:37
|
(74) ссылочным я называю поле связующие одну таблицу с другой
|
|||
76
Ненавижу 1С
гуру
19.11.08
✎
17:39
|
NULL нужен, а всякие Неопределено и пустые ссылки нах не надо
|
|||
77
ShoGUN
19.11.08
✎
17:39
|
(75) Так оно числовым может быть. Легко. И GUID вроде тоже числовое значение... Я непонимаю, в чем вопрос? В конечном счете все типы данных - элементарные.
|
|||
78
ShoGUN
19.11.08
✎
17:40
|
*(77)непонимаю - не понимаю
|
|||
79
nop
19.11.08
✎
17:46
|
(77) "В конечном счете все типы данных - элементарные."
отож! и где НУЛ и как хранится - непонятно |
|||
80
ShoGUN
19.11.08
✎
17:52
|
(79) Ну я верю vde69 в (61). То бишь для каждого поля есть еще и описатель. Если по-твоему изъясняться, то получается, что "все типы ссылочные". Или я че-то не понимаю.
|
|||
81
nop
19.11.08
✎
17:57
|
(80) Я тоже понимаю так что ссылочные
|
|||
82
КонецЦикла
19.11.08
✎
20:53
|
Пепец знатоки епвашумать
Откройте книгу по MS SQL да прочитайте |
|||
83
ShoGUN
19.11.08
✎
21:01
|
(82) У меня есть талмуд :) Дело-то не в этом.
|
|||
84
nop
20.11.08
✎
10:37
|
(82) нах надо, оно и без меня 100 лет нормально работает
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |