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

Часовой пояс: 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 часа


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

Сейчас этот форум просматривают: нет зарегистрированных пользователей


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

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