Имя: Пароль:
1C
 
Ссылка vs строки
0 Parti
 
20.04.10
23:26
подскажите, спецы - Какой РС будет больше "нагружать" базу(т.е. увеличивать размер файла .CD)- тот, у которого тип единственного реквизита - Строка, и в ней хранится Наименование документа или тот, реквизит которого ДокументСсылка и хранится в ней ссылка на документ ?
При том, что количество записей в обоих регистрах одинаково.
Или это не принципиально?
1 Лефмихалыч
 
20.04.10
23:29
совалку приделать забыла
2 Parti
 
20.04.10
23:31
(1) в БД что хранится вместо ссылки? Уникальный идентификатор?
3 Parti
 
21.04.10
09:57
провел сейчас простой тест:
Создал 2 базы, в обоих по одинаковому документу, по одному РС(непериодич, независим).

Регистр Сведений ссылочной базы(База1):
Измерения:
Измерение1(ДокументСсылка)
НомерЗаписи(Число)

Регистр Сведений строковой базы(База1):
Измерения:
Измерение1(Строка)
НомерЗаписи(Число)

В каждой базе повесил кнопку на документ:

Ссылочная база(База1):
Процедура тестНажатие(Элемент)
Счетчик = 10000;
Пока Счетчик<>1 Цикл
НаборЗаписей = РегистрыСведений.РегистрСведений1.СоздатьНаборЗаписей();
НаборЗаписей.Отбор.НомерЗаписи.Установить(Счетчик);
НоваяЗапись = НаборЗаписей.Добавить();
НоваяЗапись.Измерение1 = Ссылка;//ОТЛИЧИЕ
НоваяЗапись.номерЗаписи = Счетчик;
НаборЗаписей.Записать();      
   Счетчик = Счетчик-1;
   КонецЦикла;        
КонецПроцедуры


Строковая база(База2):
Процедура тестНажатие(Элемент)
Счетчик = 10000;
Пока Счетчик<>1 Цикл
НаборЗаписей = РегистрыСведений.РегистрСведений1.СоздатьНаборЗаписей();
НаборЗаписей.Отбор.НомерЗаписи.Установить(Счетчик);
НоваяЗапись = НаборЗаписей.Добавить();
НоваяЗапись.Измерение1 = Ссылка.Номер;//ОТЛИЧИЕ
НоваяЗапись.номерЗаписи = Счетчик;
НаборЗаписей.Записать();      
   Счетчик = Счетчик-1;
   КонецЦикла;        
КонецПроцедуры



Итог:
Размер файла Базы1(ссылочной) = 1,21 Мб
Размер файла Базы2(Строковой) = 2,05 Мб
4 Ненавижу 1С
 
гуру
21.04.10
09:59
ссылка "правильней", хотя по размеру UUID может превышать номер документа, к тому же номер вообще говоря может оказаться не уникальным
5 Sammo
 
21.04.10
10:17
1. Как предполагается использовать РС
2. Наименование документа - что под этим подразумевается
3. Возможность составных типов в РС
4. Если строка - то какой длины
6 fisher
 
21.04.10
10:22
(0) Если строка - фиксированного небольшого размера, то нагружать она будет меньше чем ссылка на документ. В твоем случае - вряд ли меньше. Но даже если бы и меньше - это ни разу не аргумент использовать её вместо ссылки. Более того - грубая идеологическая ошибка за которую в шею гнать из прикладных программистов.
7 Maxus43
 
21.04.10
10:22
Вот везде (в типовых и не только) используют Ссылки (что и правильней и надёжней), дак вот нет, надо извратится и заниматься ерундой... имхо
8 Aleksey_3
 
21.04.10
10:26
(7) Бывает так быстрее. Например я в 7-ке заменял 3 измерения регистра на одно (строка - 3 символа)
9 fisher
 
21.04.10
10:31
(8) Это даже не знаю, насколько специфический случай должен быть, чтобы имело смысл так сделать. Тем более что в 8-ке нормальные запросы и необходимость в избыточных измерениях практически отпала. В подавляющем большинстве случаев подобные "перлы" приходилось с матами за другими разгребать.
При таком варианте как у тебя:
1) ссылочная целостность - в топку
2) возможность человеческого извлечения дополнительных данных соединением таблиц в запросе - в топку.
10 ASU_Diamond
 
21.04.10
10:31
интересно что делать со строкой в регистре, после удаления документа из системы...
11 Ненавижу 1С
 
гуру
21.04.10
10:32
+(10) а лучше изменения номера
12 ASU_Diamond
 
21.04.10
10:34
кстати, если исходить из "нагружать систему" - то это не столько вес базы, сколько расчеты. Поиск по вхождению в строку не сравним с поиском ссылки.
13 Aleksey_3
 
21.04.10
10:40
(9) Регистр Прайс. Измерения Фирма, Склад, Тип цен (по каждому складу и каждой фирмы разные цены). Поэтому
1. Ссылочная целостность тут не критично, так как движения делается документам и ссылки есть в документах
2. Данные получаются по установленным всем трем измерениям, так как само понятие к примеру, цена по всем складам не имеет смысла.
14 fisher
 
21.04.10
10:55
(13) Хороший пример того, насколько узкой должна быть задача, чтобы подобное решение было приемлемо.
15 fisher
 
21.04.10
10:56
(14) + Даже не уверен, что при такой постановке вообще нужен регистр.
16 Serg_1960
 
21.04.10
11:09
(14) +1 тонкое замечание, дипломатичное :) А грубо говоря: если вместо ссылки используется "представление" - то таких регистров и прогов - в топку :(
Здесь можно обсудить любую тему при этом оставаясь на форуме для 1Сников, который нужен для работы. Ymryn