Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Какой тип данных лучше всего для ключей?
|
|||
|---|---|---|---|
|
#18+
Доброго времени суток всем! Кто-нибудь проводил анализ по поводу того, какой тип данных лучше всего использовать для ключевых полей таблиц? То бишь по каким ключам выборки производятся быстрее и т.д. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.07.2003, 10:01 |
|
||
|
Какой тип данных лучше всего для ключей?
|
|||
|---|---|---|---|
|
#18+
По ключевым полям, как правило, есть индекс. В этом случае абсолютно все-равно какой тип данных используется. Время поиска будет сопоставимо при любом типе данных. Так что с точки зрения быстродействия - это дело исключительно личных предпочтений программиста. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.07.2003, 12:14 |
|
||
|
Какой тип данных лучше всего для ключей?
|
|||
|---|---|---|---|
|
#18+
Символьный, потому, что чем меньше поле тем лучше! Все буквы во всех регистрах и все цифры и всякие там значки... То есть все что можно увидеть, ввести и напечатать. (на всякий случай) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.08.2003, 08:11 |
|
||
|
Какой тип данных лучше всего для ключей?
|
|||
|---|---|---|---|
|
#18+
и я за символьный! Потому что грабли от VFP30 до шестерки с тем же комбо, в кот результат хочеца получить как ИД, а если он цифрой, то начинаеца беда с возвратом индекса комбы, а не значения ИД'а таблицы... Кстати эта фича до 8 тоже дожила? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.08.2003, 08:55 |
|
||
|
Какой тип данных лучше всего для ключей?
|
|||
|---|---|---|---|
|
#18+
то начинаеца беда с возвратом индекса комбы, а не значения ИД'а таблицы... Кстати эта фича до 8 тоже дожила? Не юзаю комбы в гридах, но вроде как Гринчишин утверждал, что баг исправили. Лабай тестовый пример, выкидывай сюда - прогоню... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.08.2003, 09:42 |
|
||
|
Какой тип данных лучше всего для ключей?
|
|||
|---|---|---|---|
|
#18+
да всё таже фигня с комбами ... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.08.2003, 10:07 |
|
||
|
Какой тип данных лучше всего для ключей?
|
|||
|---|---|---|---|
|
#18+
Если ключ нужен только для уникального ID, думаю символьный лучше, т.к. компактнее и функции типа Sys(2015) возвращают символьные значения. В тех же случаях, когда нужна сортировка по нему, я выбираю тип по контексту :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.08.2003, 10:17 |
|
||
|
Какой тип данных лучше всего для ключей?
|
|||
|---|---|---|---|
|
#18+
2 Aijik эта беда не гридах, а комбах вцелом.. примера нету, потому что фс:е на символьных ключах заточено, а лабать так просто... chagoserg уже крикнул, что осталась ;( ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.08.2003, 10:37 |
|
||
|
Какой тип данных лучше всего для ключей?
|
|||
|---|---|---|---|
|
#18+
Извините, а поподробней о сути проблемы можно (не очень понимаю), какие проблемы вылазят при использоании комбо и отражении в нём таблицы с numeric ID (и индексу по нём)? .. просто не сталкивался с таким раньше. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.08.2003, 11:43 |
|
||
|
Какой тип данных лучше всего для ключей?
|
|||
|---|---|---|---|
|
#18+
не знаю, как кто, а я эту проблему вижу так: таблица - два поля одно - смысловое значение, второе -идентификатор(нумерик) у комбо источник - поля этой таблы table.field1,field2 BoundColumn2 BoundTo=.t. выбираем значение из комбо тип value комбо - char 2 Gustaf а можно с Вами по проблемам использования Sybase пообщаться? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.08.2003, 11:53 |
|
||
|
Какой тип данных лучше всего для ключей?
|
|||
|---|---|---|---|
|
#18+
2 chagoserg Это ты в профиле увидел? :) Мои познания в SyBase ограничены версией 5.0 (AnyWhere) и почерпнуты лишь из самого мануала, поставляемого с самим продуктом. Простяцкий SQL сервер, клиентская, серверная часть, легко ставится, легко настраивается, в хелпе я нашёл ответы на все интересующие меня вопросы. Чем могу - помогу. ЗЫ. А тутошний форум по SyBase не помощник? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.08.2003, 13:09 |
|
||
|
Какой тип данных лучше всего для ключей?
|
|||
|---|---|---|---|
|
#18+
2 Hel!Riser Хэл! Вот слабал небольшой тест. Все работает правильно. В зареманых строках то же самое для символьных iD. Работает точно так же... Как именно увидеть баг? Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. 48. 49. 50. 51. 52. 53. 54. 55. 56. 57. 58. 59. 60. 61. 62. 63. 64. 65. 66. 67. 68. 69. 70. 71. 72. 73. 74. 75. 76. 77. 78. 79. 80. 81. 82. 83. 84. 85. 86. 87. 88. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.08.2003, 13:28 |
|
||
|
Какой тип данных лучше всего для ключей?
|
|||
|---|---|---|---|
|
#18+
Проблема с Combo возникает если: 1) В качестве источника данных выступают напрямую поля таблицы (RowSourceType = 6) 2) Ключевое поле имеет числовой тип Соответсвенно, решением проблемы является замена источника данных (я использую массивы) или изменение типа (что проблематично) =========================================================== Насчет длины ключа. Как правило, в качестве ключевого поля используются поля типа Integer. Т.е. физически они занимают 4 байта на каждую запись. При этом, опять же как правило, используются только положительные значения, т.е. диапазон значений ключа от 0 до 2 147 483 647. Много это или мало? Опять же, как правило, срок жизни программы не превышает 2...3 лет. Данные живут несколько больше, примерно 10...15 лет. Предположим, что данные у нас "вечные" и живут 100 лет. Это значит, что для того, чтобы достичь предела насыщения типа Integer пользователи должны в течении 100 лет ежедневно без перерыва на праздники и выходные вколачивать в базу данных примерно по 60 тысяч записей. Согласен, бывают и такие задачи. НО!!! Для подобных задач DBF-таблицы становятся уже неприемлимыми, поскольку они просто физически не могут вместить такое количество записей. Предел DBF-таблиц - это 1 миллиард записей, т.е. примерно половина диапазона типа Integer. Если вернуться к типу Character, то исходя из предположения, что длина ключа не должна превышать тип Integer, мы должны установить длину C(4). Предположим, что в качестве значения могут использоваться все 254 символа кодовой страницы. Это значит, что предельно возможное количество значений такого ключа составит: 254**4= 4,162,314,256 Т.е. всего в 2 раза больше чем для типа Integer. Если же вспомнить, что ряд символов использовать неудобно по разным причинам, то остается около 100 допустимых символов для использования в качестве ключа. Т.е. возвращаемся примерно к тому же диапазону значений, что и для типа Integer. Итого, с точки зрения длины ключа тип Character не дает никаких преимуществ при использовании в DBF-таблицах по сравнению с типом Integer. Подчеркну еще раз, в данном случае я рассмотрел только аспект физической длины ключа. Однако есть задачи, когда использование в качестве ключевого поля типа Character становится предпочтительнее. Но это связано уже не с какими-то техническими проблемами, а исключительно с логикой реализации задачи. Если же вспомнить, что в MS SQL и в VFP8 существует такое понятие как автоинкрементные поля, которые просто не могут не быть числовыми. То вопрос о типе ключевого поля вообще становится чисто теоретическим. И опять же переходит из области чисто практической в область личных предпочтений программиста. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.08.2003, 12:33 |
|
||
|
Какой тип данных лучше всего для ключей?
|
|||
|---|---|---|---|
|
#18+
Владимир, почему тогда вышеприведенный тест работает без проблем (VFP7SP1 - VFP8)? И вообще как проявляется баг? ФоксКлуб, к сожалению, не досупен - знаю, что в Ваша статья по этому поводу там есть, но не помню, в чем конкретно там проблема была, а посмотреть ироды (буржуи) не дают :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.08.2003, 12:43 |
|
||
|
Какой тип данных лучше всего для ключей?
|
|||
|---|---|---|---|
|
#18+
Суть бага заключается в том, что выбранное текущее значение НЕ ОТОБРАЖАЕТСЯ. Т.е. значения Value абсолютно правильные, но вот вместо DisplayValue отображается пустая строка. Как правило, этот баг проявляется при использовании ComboBox внутри Grid. Причем при потере фокуса в текущей ячейке правильное отображение восстанавливается. Проблема именно в той ячейке, где в данный момент находися фокус. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.08.2003, 13:15 |
|
||
|
Какой тип данных лучше всего для ключей?
|
|||
|---|---|---|---|
|
#18+
Да, действительно, этот баг остался и в VFP8 :( ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.08.2003, 11:16 |
|
||
|
Какой тип данных лучше всего для ключей?
|
|||
|---|---|---|---|
|
#18+
Да, действительно, этот баг остался и в VFP8 :( Я с ним тока на VFP8 и столкнулся :( ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.08.2003, 11:55 |
|
||
|
Какой тип данных лучше всего для ключей?
|
|||
|---|---|---|---|
|
#18+
А так нельзя: юзать не .value, а напрямую обращаться к значению поля? кажись, указатель тоже перемещается при играх с комбо? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.08.2003, 12:50 |
|
||
|
Какой тип данных лучше всего для ключей?
|
|||
|---|---|---|---|
|
#18+
2 Любопытный так дело в том, как сказано выше - проявление бага только в отображении комбо в гриде, и не важно что использовать... причём баг проявляется в случае, если источником комбо является поля или алиас (даже если id конвертирован в char) если используется массив или select с конвертированием - всё нормально ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.08.2003, 12:59 |
|
||
|
|

start [/forum/topic.php?fid=41&msg=32244218&tid=1597985]: |
0ms |
get settings: |
9ms |
get forum list: |
18ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
29ms |
get topic data: |
12ms |
get forum data: |
3ms |
get page messages: |
72ms |
get tp. blocked users: |
2ms |
| others: | 265ms |
| total: | 418ms |

| 0 / 0 |
