|
SQLite - кто как делает колонки типа GUID? | ☑ | ||
---|---|---|---|---|
0
NorthWind
21.03.22
✎
13:34
|
Добрый день!
Решил переделать на пайтон один свой древний проект, изначально сделанный на VBS. Проект использует БД (Access). Думаю вместо него использовать SQLite как самую очевидную замену. И есть вопрос... В проекте интенсивно используются гуиды, в том числе в качестве PK и FK. Насколько я понял, в SQLite 128-битных целых нет, в отличие от Access, где такой тип есть ("код репликации"). Соответственно, вопрос - кто как выкручивается? Строки? |
|||
1
Вафель
21.03.22
✎
13:40
|
binary используй
|
|||
2
acht
21.03.22
✎
13:41
|
(0) https://stackoverflow.com/questions/18821265/proper-way-to-store-guid-in-sqlite
... These GUIDs are being stored as 16-byte binary blobs, in little-endian order. |
|||
3
NorthWind
21.03.22
✎
13:41
|
собственно, крайней необходимости в переделке никакой нет, оно живое и работает уже 5 годков, но хочется на его примере разобраться в пайтоне, благо там есть и взаимодействие с сетью, и XML, и электронные подписи, и бидэ.
|
|||
4
NorthWind
21.03.22
✎
13:42
|
(1)(2) а оно умеет индексы, PK и FK?
|
|||
5
NorthWind
21.03.22
✎
13:42
|
обычно-то бинари не особо любят это дело
|
|||
6
Djelf
21.03.22
✎
13:43
|
Все верно, обычный блоб. Вот тут все описано: https://www.kittell.net/code/auto-increment-auto-generate-guid/
|
|||
7
NorthWind
21.03.22
✎
13:45
|
(6) Спасибо!
|
|||
8
NorthWind
21.03.22
✎
13:46
|
хм... удалось создать блоб как уникальный PK... о как бывает
|
|||
9
Djelf
21.03.22
✎
13:49
|
Для удобства можно создать вычисляемую колонку по блобу: https://www.sqlitetutorial.net/sqlite-generated-columns/
|
|||
10
NorthWind
21.03.22
✎
13:53
|
(9) Спасибо!
|
|||
11
NorthWind
21.03.22
✎
13:56
|
вообще, конечно, блоб - первичный ключ и уникальное значение выглядит диковато. Но работает, что характерно
|
|||
12
Вафель
21.03.22
✎
13:58
|
(11) так это маленький блоб. Он лежит на странице. Никакой разницы с другими типами нет
|
|||
13
Вафель
21.03.22
✎
13:59
|
Можно сказать так, что блоб это значение тип которого определяется на след. уровне (те в самом по)
|
|||
14
Вафель
21.03.22
✎
14:00
|
С точки зрения бд это дан проще чем типизированные значения
|
|||
15
NorthWind
21.03.22
✎
14:22
|
(14) тем не менее в большинстве "взрослых" БД на блоб есть ограничения.
|
|||
16
Вафель
21.03.22
✎
15:23
|
(15) во взрослых обычно разделяют блоб и бинари
|
|||
17
ДедМорроз
21.03.22
✎
19:18
|
(16) разделение по способу хранения,а он зависит от длины.
Кому не нравится binary,то можно char32 использовать или кодированное в base85 char20. |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |