powered by simpleCommunicator - 2.0.53     © 2025 Programmizd 02
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / Растолкуйте про ошибку на составной ключ с utf8(unicode_ci_ai)
25 сообщений из 112, страница 2 из 5
Растолкуйте про ошибку на составной ключ с utf8(unicode_ci_ai)
    #39252367
rdb_dev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry Sibiryakov, и тут я понял, что определенно не хочу знать, с какой целью используется тип хранения десятичных значений двойной точности при использовании целочисленного значения индекса.
...
Рейтинг: 0 / 0
Растолкуйте про ошибку на составной ключ с utf8(unicode_ci_ai)
    #39252371
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
rdb_dev,

ну зато ты другое хочешь знать. А без понимания как хранятся ключи индекса, не поймёшь откуда ограничения берутся
...
Рейтинг: 0 / 0
Растолкуйте про ошибку на составной ключ с utf8(unicode_ci_ai)
    #39252376
Фотография kdv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
rdb_devМне так удобнее и привычнее. Предпочитаю видеть все ограничения сразу в одном месте, а не бродить глазами по хвостам полей.
я про злое..чие двойные кавычки. Сразу видно человека, который таблицы мастрячит в дизайнере старого ибэксперта, без включенной опции "always capitalaize database object names", которая включена по умолчанию уже несколько лет как.
...
Рейтинг: 0 / 0
Растолкуйте про ошибку на составной ключ с utf8(unicode_ci_ai)
    #39252407
hvlad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
dimitrдлина каждого сегмента (плюс один байт для DESC) плюс догонка от 1 до 4 байт на сегмент. И весь ключ потом до 8 байт вверх округляется.Гм... это ты сортировку описал.
А для мультисегментного индекса несколько иначе: после каждых 4-х байт данных добавляется байт с номером сегмента, длина сегмента выравнивается до 5-ти байт.
Т.е. для ключа (SMALLINT, VARCHAR(158) CHARACTER SET UTF8 COLLATE UNICODE_CI_AI) получим
1-ый сегмент: (sizeof(double precision) + 4 - 1) / 4 * 5 = 11 / 4 * 5 = 10
2-ой сегмент: (158 * 6 + 4 - 1) / 4 * 5 = 951 / 4 * 5 = 1185
Вместе: максимальная длина ключа - 1195 байт, и это больше 1/4 страницы в 4КБ
...
Рейтинг: 0 / 0
Растолкуйте про ошибку на составной ключ с utf8(unicode_ci_ai)
    #39252464
rdb_dev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kdvСразу видно человека, который таблицы мастрячит в дизайнере старого ибэксперта, без включенной опции "always capitalaize database object names", которая включена по умолчанию уже несколько лет как.
Никогда не пользовался CASE средствами (построителями), всё, по привычке, пишу в скрипте. Двойными кавычками пользуюсь из-за того, что названия объектов БД предпочитаю строчными буквами, а во входных параметрах процедур использовать как строчные, так и прописные буквы (например, "objectId").
...
Рейтинг: 0 / 0
Растолкуйте про ошибку на составной ключ с utf8(unicode_ci_ai)
    #39252472
rdb_dev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kdv, почему вас так раздражают двойные кавычки?
...
Рейтинг: 0 / 0
Растолкуйте про ошибку на составной ключ с utf8(unicode_ci_ai)
    #39252484
WildSery
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
rdb_devkdv, почему вас так раздражают двойные кавычки?Воспользуйтесь поиском, тема двойных кавычек разжёвана неоднократно.
Не то, чтобы это было плохо само по себе, но есть особенности, которые в нетренированных руках приводят к какой-нибудь очередной лаже, с которой тут же бегут на форум жаловаться.
...
Рейтинг: 0 / 0
Растолкуйте про ошибку на составной ключ с utf8(unicode_ci_ai)
    #39252499
rdb_dev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
WildSeryНе то, чтобы это было плохо само по себе, но есть особенности, которые в нетренированных руках приводят к какой-нибудь очередной лаже, с которой тут же бегут на форум жаловаться.
За полтора мегабайта исходников на C++ при написании интерфейсной библиотеки ORM системы, еще пока ни разу с подобными косяками не сталкивался. Все двойные кавычки внутри сишных строк прекрасно экранируются через backslash. Конечно, немного теряется читабельность таких строк, но я уже привык.
...
Рейтинг: 0 / 0
Растолкуйте про ошибку на составной ключ с utf8(unicode_ci_ai)
    #39252544
Гаджимурадов Рустам
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Дело не в экранировании.
Просто вы через призму
ORM c "проблемами" не
столкнулись (ещё)..
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Растолкуйте про ошибку на составной ключ с utf8(unicode_ci_ai)
    #39252548
rdb_dev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Гаджимурадов Рустам, мне было бы интересно посмотреть на пример "проблемы". Есть что-нибудь на примете? По поиску ничего экстраординарного найти не могу.
...
Рейтинг: 0 / 0
Растолкуйте про ошибку на составной ключ с utf8(unicode_ci_ai)
    #39252560
Гаджимурадов Рустам
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
rdb_dev> мне было бы интересно посмотреть на пример "проблемы".
rdb_dev> По поиску ничего экстраординарного найти не могу.

Да хоть create table (id int, "id" int, "Id" int, "iD" int)
Как только у вас разработчики (или Вы один?)
начнут фигачить запросы мимо ORM "напрямую" -
Вы сразу почувствуете вкус жизни.

Хотя по идее, Вы уже на уровне IBE, при разработке
могли наткнуться на различные неудобства.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Растолкуйте про ошибку на составной ключ с utf8(unicode_ci_ai)
    #39252589
rdb_dev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Гаджимурадов РустамДа хоть create table (id int, "id" int, "Id" int, "iD" int)
Абсолютно жизнеспособный DDL, равносильный:
Код: plsql
1.
2.
3.
4.
5.
6.
7.
CREATE TABLE "someTable"
(
    "ID"  INTEGER,
    "id"  INTEGER,
    "Id"  INTEGER,
    "iD"  INTEGER
);



Гаджимурадов РустамКак только у вас разработчики (или Вы один?)
начнут фигачить запросы мимо ORM "напрямую" -
Вы сразу почувствуете вкус жизни.
Не начнут. Для доступа к элементам ORM системы сделана библиотека с объектным интерфейсом на виртуальных методах, которая и фигачит запросы к БД.

Гаджимурадов РустамХотя по идее, Вы уже на уровне IBE, при разработке
могли наткнуться на различные неудобства.
Неа. ) CASE средствами пользуюсь только для мелких правок в уже существующих объектах БД, да и то не всегда, а всё остальное ручками в sql скрипте.
...
Рейтинг: 0 / 0
Растолкуйте про ошибку на составной ключ с utf8(unicode_ci_ai)
    #39252613
Гаджимурадов Рустам
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
rdb_dev> Абсолютно жизнеспособный DDL, равносильный:
rdb_dev> Не начнут.

Ну-ну. Впрочем, каждый сам хозяин своим шишкам на лбу.


> Никогда не пользовался CASE средствами
> Неа. ) CASE средствами пользуюсь


Пациент путается в показаниях. (с)
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Растолкуйте про ошибку на составной ключ с utf8(unicode_ci_ai)
    #39252619
rdb_dev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Гаджимурадов РустамПациент путается в показаниях. (с)
Не придирайся к словам! :) Имелось в виду, что я не пользуюсь CASE средствами для создания объектов БД.
...
Рейтинг: 0 / 0
Растолкуйте про ошибку на составной ключ с utf8(unicode_ci_ai)
    #39252625
rdb_dev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Гаджимурадов Рустамrdb_dev> Абсолютно жизнеспособный DDL, равносильный:
rdb_dev> Не начнут.
Ну-ну. Впрочем, каждый сам хозяин своим шишкам на лбу.
В моих правилах именования столбцов таблиц не использовать прописные (заглавные) буквы. Только строчные.
...
Рейтинг: 0 / 0
Растолкуйте про ошибку на составной ключ с utf8(unicode_ci_ai)
    #39252657
Гаджимурадов Рустам
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
rdb_dev> В моих правилах именования столбцов

О, далеко пойдёшь. Возвращайся, когда их
начнут нарушать, а ты вовремя не заметишь.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Растолкуйте про ошибку на составной ключ с utf8(unicode_ci_ai)
    #39252660
rdb_dev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Гаджимурадов Рустам, нет таких. Непосредственно метаданные БД меняю только я, а другие разработчики получают доступ к базе только через библиотеку, так как вообще не в курсе схемы данных.
...
Рейтинг: 0 / 0
Растолкуйте про ошибку на составной ключ с utf8(unicode_ci_ai)
    #39252671
rdb_dev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Гаджимурадов РустамО, далеко пойдёшь.
Я заметил, что мои правила сильно отличаются от тех, что приняты у большинства здесь отмечающихся. К примеру, все ключевые слова DML/DDL, кроме названий функций, предпочитаю писать исключительно прописными буквами (здесь предпочитают строчные); названия функций - первая прописная, остальные строчные; имена таблиц и полей - все строчные буквы, разделяя слова символом подчеркивания. Такая привычка осталась со времен моего занятия MS SQL Server и изменить привычке ой как не просто...
...
Рейтинг: 0 / 0
Растолкуйте про ошибку на составной ключ с utf8(unicode_ci_ai)
    #39252672
Мимопроходящий
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
о! у нас на форуме новый храбрый заяц.
который, как он сам утверждает, зашугал весь лес...
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Растолкуйте про ошибку на составной ключ с utf8(unicode_ci_ai)
    #39252674
rdb_dev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Мимопроходящий, в каком смысле "зашугал"? Что именно заставило тебя так думать?
...
Рейтинг: 0 / 0
Растолкуйте про ошибку на составной ключ с utf8(unicode_ci_ai)
    #39252695
Andrey_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
hvladА для мультисегментного индекса несколько иначе...
Спасибо, очень познавательно.

Но это немного разорвало мне шаблон. Всегда думал, что для хранения SMALLINT в индексе нужно 2 байта (ну плюс всякие оверхеды, выравнивания там и т.д.) Но никак не 8 байт. Пожалуйста, в общих чертах объясните, почему так? Ну или ссылкой бросьте где написано. Потому что на первый взгляд это как-то... странно.

Да, и это про какую версию ODS? Или это так со времен борланда?
...
Рейтинг: 0 / 0
Растолкуйте про ошибку на составной ключ с utf8(unicode_ci_ai)
    #39252702
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Andrey_Да, и это про какую версию ODS? Или это так со времен борланда?

Это со времён Джима. Изначальный дизайн.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Растолкуйте про ошибку на составной ключ с utf8(unicode_ci_ai)
    #39252720
hvlad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Andrey_Но это немного разорвало мне шаблон. Всегда думал, что для хранения SMALLINT в индексе нужно 2 байта (ну плюс всякие оверхеды, выравнивания там и т.д.) Но никак не 8 байт. Пожалуйста, в общих чертах объясните, почему так? Ну или ссылкой бросьте где написано. Потому что на первый взгляд это как-то... странно.Все числовые типы данных (кроме BIGINT) приводятся к double в ключах индекса и нормализуются.
Это позволяет не перестраивать индекс при смене одного числового типа данных на другой.
Префиксная компрессия и отбрасывание нулей в хвосте ключа позволяет хранить в ключе минимальное кол-во значащих байт, а не все 8.
Сомневающихся убедит gstat -r ;)
...
Рейтинг: 0 / 0
Растолкуйте про ошибку на составной ключ с utf8(unicode_ci_ai)
    #39252738
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
rdb_devК примеру, все ключевые слова DML/DDL, кроме названий функций, предпочитаю писать исключительно прописными буквами (здесь предпочитают строчные);

Я бы не говорил за всех. Здесь не любят квотированные идентификаторы. А в каком регистре написаны ключевые слова и идентификаторы всем абсолютно пофиг.
...
Рейтинг: 0 / 0
Растолкуйте про ошибку на составной ключ с utf8(unicode_ci_ai)
    #39252742
rdb_dev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Симонов ДенисЗдесь не любят квотированные идентификаторы.
Да, уже заметил... Причем, можно сказать, не просто "не любят", а люто ненавидят.
...
Рейтинг: 0 / 0
25 сообщений из 112, страница 2 из 5
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / Растолкуйте про ошибку на составной ключ с utf8(unicode_ci_ai)
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]