Показать сообщение отдельно
  #14 (permalink)  
Старый 11.01.2023, 16:24
Аватар для webgraph
Профессор
Отправить личное сообщение для webgraph Посмотреть профиль Найти все сообщения от webgraph
 
Регистрация: 14.11.2014
Сообщений: 186

Сообщение от voraa Посмотреть сообщение
Лучше, конечно иметь весь список операций, которые могут понадобиться. Какие частые и надо проводить быстро, какие редкие и скоростью можно пожертвовать.
Из того, что написано может быть такая схема

const operations_objects = [
	{
		from: 'e3d08a24-971f-4e5b-b646-a9decd12f05d', // UUID от кого
		to: 'd82bbb1d-0ab0-4d4d-8f97-41ddf6460c41',  // UUID кому
		value: '500.00000000000000',  // сколько (может быть уникальным значением) и принципиально строковое значение
		total_from: '100.00000000000000', // сколько осталось у отправителя
		total_to: '500.00000000000000', // сколько стало у получателя
		time: 1673357366 // дата проведения операции в секундах (от 01.01.1970)
    },
    {
		from: 'bd166b6d-381d-4109-9b4b-7a48a26b4119',
		to: 'ef59025a-165d-407e-831b-ab3464ae3861',
		value: '300.00000000000000',
		total_from: '700.00000000000000',
		total_to: '400.00000000000000',
		time: 1673357377
    },
];

memberOperations = new Map ()

Ключом является UUID участника
Значение - такой объект
{
operations: [<n.op>, <n.op>, <n.op...] // номера операций м массиве operations_objects с этим участником
values: new Map();
}

ключ у values - values из операции
значение - [<n.op>, <n.op>...] - номера операций м массиве operations_objects с этим участником и с этим values
Получается параметр operations позволит выводить весь список операций или определенное количество по конкретному UUID, а параметр values — искать значение value у этого участника.

Операции добавлять с помощью unshift().

Массивы в данном случае действительно быстро будут работать? А то мы выяснили, что они ппц какие медленные.
Ответить с цитированием