Текущее время: Вт, июл 29 2025, 13:51

Часовой пояс: UTC + 3 часа


Правила форума


ВНИМАНИЕ!

Вопросы по SAP Query и Quick View - сюда



Начать новую тему Ответить на тему  [ Сообщений: 13 ] 
Автор Сообщение
 Заголовок сообщения: Нелюбовь к суррогатным ключам?
СообщениеДобавлено: Ср, ноя 21 2007, 15:07 
Начинающий
Начинающий

Зарегистрирован:
Ср, ноя 21 2007, 14:57
Сообщения: 4
Здравствуйте.
Начинаю изучать ABAP.
Обратила внимание на то, что как в стандартных так и в пользовательских таблицах SAP используются, как правило, натуральные ключи.
Есть какие-то весомые причины для отказа от использования суррогатных ключей в пользовательских таблицах?


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Ср, ноя 21 2007, 15:10 
Гуру-эксперт
Гуру-эксперт
Аватара пользователя

Зарегистрирован:
Ср, ноя 03 2004, 14:51
Сообщения: 1912
Откуда: КраснАдар
Пол: Мужской
Назовите, пожалуйста, весомые причины для их использования.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Ср, ноя 21 2007, 16:45 
Старший специалист
Старший специалист

Зарегистрирован:
Пт, мар 25 2005, 11:46
Сообщения: 282
Откуда: SPb
Раскройте, плз, что вы подразумеваете под натуральным и суррогатным ключем?

_________________
Лучше сделать и пожалеть, чем не сделать и потом жалеть.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Ср, ноя 21 2007, 16:51 
Гуру-эксперт
Гуру-эксперт
Аватара пользователя

Зарегистрирован:
Ср, ноя 03 2004, 14:51
Сообщения: 1912
Откуда: КраснАдар
Пол: Мужской
Я так думаю - единственный вариант их использования, когда нужно при сохранении "расширенного" объекта сохранить данные собственных таблиц (ибо обычные данные сами в расширение лягут) своего юзер-экзита, а основного ключа еще нет. Тогда лепим свой диапазон номеров, в расширение таблицы поле - куда ложим "суррогатный" номер из этого диапазона, в собственные таблицы ключ - тоже суррогатный... И всю последующую жизнь имеем гемморой с получением данных выстраивая интересные конструкции.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Ср, ноя 21 2007, 17:21 
Менеджер
Менеджер

Зарегистрирован:
Вт, авг 17 2004, 13:14
Сообщения: 664
Откуда: Москва
Пол: Мужской
Речь идет о id записи? Такой подход типичен для многих систем. Мне его очень не хватало, когда я только перешел на SAP. Ничего, привык. :) Сейчас появились некоторые таблицы, в которых используются суррогатные ключи. Мне это кажется нарушением концепции.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Ср, ноя 21 2007, 17:26 
Модератор
Модератор
Аватара пользователя

Зарегистрирован:
Пт, июн 16 2006, 00:43
Сообщения: 1686
Откуда: Москва <-> Красноярск
Пол: Мужской
Ну в оракле так вообще красота. С idшниками строк.

А в САПе проблема только одна: если необходимо менять первичный ключ записи - пиши пропало. Очень некрасивые решения получаются.
Или свой диапазон номеров создавать приходится. Которые в САПе тоже, кхм, не идеальны.


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения:
СообщениеДобавлено: Ср, ноя 21 2007, 19:12 
Начинающий
Начинающий

Зарегистрирован:
Ср, ноя 21 2007, 14:57
Сообщения: 4
zaba написал(а):
Раскройте, плз, что вы подразумеваете под натуральным и суррогатным ключем?

пожалуй, в таком контексте:
"Естественный Ключ (ЕК) - набор атрибутов описываемой записью сущности, уникально её идентифицирующий (например, номер паспорта для человека);
Суррогатный Ключ (СК) - автоматически сгенерированное поле, никак не связанное с информационным содержанием записи. Обычно в роли СК выступает автоинкрементное поле типа INTEGER." (взято из http://www.delphiworld.narod.ru/base/na ... _keys.html)


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Ср, ноя 21 2007, 19:13 
Начинающий
Начинающий

Зарегистрирован:
Ср, ноя 21 2007, 14:57
Сообщения: 4
John Doe написал:
Назовите, пожалуйста, весомые причины для их использования.

мой взгляд на вопрос совпадает с мнением автора статьи http://www.delphiworld.narod.ru/base/na ... _keys.html


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Ср, ноя 21 2007, 19:44 
Модератор
Модератор
Аватара пользователя

Зарегистрирован:
Пт, июн 16 2006, 00:43
Сообщения: 1686
Откуда: Москва <-> Красноярск
Пол: Мужской
В принципе одного суррогатного ключа недостаточно.
Любой, кто решал проблему каскадных удалений/изменений затрагивающих первичный ключ (не важно какой) знает о чем я :)
INSTEAD тригеры, например, также очень хорошо иллюстрируют ситуацию.

Так что мне, в принципе, без разницы какой ключь.
Мне rowid, уникальный в рамках СУБД, нужен :)


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения:
СообщениеДобавлено: Ср, ноя 21 2007, 20:55 
Старший специалист
Старший специалист

Зарегистрирован:
Сб, окт 21 2006, 20:34
Сообщения: 280
У нас система ( SAP for Banking ) полностью построена на суррогатных ключах типа SYSUUID - думаю это сделано в целях улучшения производительности из-за большого числа пользователей и транзакций


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Ср, ноя 21 2007, 20:57 
Старший специалист
Старший специалист

Зарегистрирован:
Сб, окт 21 2006, 20:34
Сообщения: 280
SYSUUID - это домен


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Ср, ноя 21 2007, 22:12 
Почетный гуру
Почетный гуру
Аватара пользователя

Зарегистрирован:
Ср, ноя 23 2005, 13:37
Сообщения: 1805
Откуда: ECC 6.0
Пол: Мужской
Tim написал:
Сейчас появились некоторые таблицы, в которых используются суррогатные ключи. Мне это кажется нарушением концепции.

В CRM, например, id-шники распространены. Да и во всех современных разработках, я думаю.

Прикиньте, какой длины ключ у таблицы mseg в юникодной системе.
В то время как достаточно было бы INT4.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Чт, ноя 22 2007, 10:31 
Начинающий
Начинающий

Зарегистрирован:
Ср, ноя 21 2007, 14:57
Сообщения: 4
sibrin написал:
В CRM, например, id-шники распространены. Да и во всех современных разработках, я думаю. ...

Понятно. Как и подозревала, видела пока слишком мало таблиц :) Всем спасибо!


Принять этот ответ
Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 13 ] 

Часовой пояс: UTC + 3 часа


Кто сейчас на конференции

Сейчас этот форум просматривают: Google [Bot]


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  
cron
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Русская поддержка phpBB