|
Насколько важно в БД использовать поля разных типов Date/bool/long/integer
|
|||
---|---|---|---|
#18+
Дмитрий77Но, по сути вопроса, все поля типа Long/Integer/Boolean, которые было накрутил, я заменил на текстовые ограниченной длины, в основном 5. Это не вопрос, это так сказать осознанное решение. Они могут быть вообще пустые , т.е. 0-по умолчанию никак не годится, должно быть "". Осуждаю. Приведенный аргумент - не аргумент. Для хранения отсутствующего значения в БД используется NULL. То есть это и есть "нет значения". NULL записывается даже в поле типа Boolean. На клиенте ты преобразуешь число в текст, в этот момент тебе никто не мешает превратить NULL в пустую строку. У меня в библиотеке есть несколько функций, которыми я постоянно пользуюсь, вот одна из них, комментарии излишни: Код: plaintext 1. 2. 3. 4. 5.
Сейчас ты пойдешь по неправильной дорожке и чем дальше, тем больше ухудшишь ситуацию. А через год сядешь перед своим кодом и поймешь, что опять надо делать рефакторинг, потому что такой подход наложил на тебя кучу ограничений. ЗЫ: .... стоя в гамаке (с) анекдот ... |
|||
:
Нравится:
Не нравится:
|
|||
22.01.2011, 11:35 |
|
Насколько важно в БД использовать поля разных типов Date/bool/long/integer
|
|||
---|---|---|---|
#18+
Shocker.Pro, >ЗЫ ГЫ: но я не собираюсь тратить этот год на этот код Ну не вижу я смысла числа статистики типа скорость соединения (14400 19200 2400) или размер картинки (8031х3850) из лонгов в стринги туда-сюда гонять, C++ модуль отдает мне текст, ListView отображает текст, я ведь не собираюсь 14400 на 8031 делить и возводить в степень 3850. Ты лучше скажи по сути. 1.Для стирания даты в поле типа DateTime (с кот. общими усилиями согласились) NULL применять законно (другого способа стереть дату не нашел)? Код: plaintext
2.Для быстрого считывания одной записи (ну допустим, что я знаю что WHERE задает уникальное условие и запись точно есть, ибо токо что делал ей UPDATE) Execute сгодится (сам меня к Execute подтолкнул)? То что это работает, уже проверил. Код: plaintext
... |
|||
:
Нравится:
Не нравится:
|
|||
22.01.2011, 12:00 |
|
Насколько важно в БД использовать поля разных типов Date/bool/long/integer
|
|||
---|---|---|---|
#18+
Дмитрий771.Для стирания даты в поле типа DateTime (с кот. общими усилиями согласились) NULL применять законно (другого способа стереть дату не нашел)? Да, это единственный способ. Либо дата есть, либо нет (NULL) Дмитрий772.Для быстрого считывания одной записи (ну допустим, что я знаю что WHERE задает уникальное условие и запись точно есть, ибо токо что делал ей UPDATE) Execute сгодится (сам меня к Execute подтолкнул)? То что это работает, уже проверил. Код: plaintext
Да, вполне, это альтернатива, собственно, RS.Open и делает то же самое. ... |
|||
:
Нравится:
Не нравится:
|
|||
22.01.2011, 12:05 |
|
Насколько важно в БД использовать поля разных типов Date/bool/long/integer
|
|||
---|---|---|---|
#18+
Дмитрий77 и запись точно есть В случаях, когда есть сомнение, проверяешь RS.EOF, если True - значит рекордсет пустой. ЗЫ: то что рекордсет открылся пустым, не отменяет необходимости его закрыть ... |
|||
:
Нравится:
Не нравится:
|
|||
22.01.2011, 12:07 |
|
|
start [/forum/topic.php?fid=60&startmsg=37072863&tid=2159038]: |
0ms |
get settings: |
9ms |
get forum list: |
14ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
85ms |
get topic data: |
11ms |
get forum data: |
2ms |
get page messages: |
43ms |
get tp. blocked users: |
1ms |
others: | 336ms |
total: | 507ms |
0 / 0 |