Нет необходимости отслеживать идентификатор сообщения в базе данных.
Единственное, что вам нужно, это метод, который генерирует один и тот же ID сообщения для одного и того же ввода (например, md5 hash
). И вход этого метода должен быть чем-то, что не изменяет и идентифицирует все сообщения, которые должны быть сгруппированы вместе. В вашем примере с сгруппированными электронными письмами от GitHub о конкретных запросах извлечения они могли использовать идентификатор в качестве входных данных.
Я бы начал поиграться с чем-то вроде этого:
require 'digets'
def message_id(identifer)
Digest::MD5.hexdigest(identifer)
end
message_id("pull-123")
#=> "23172d2caceae88a1152e967af71fc6e"
message_id("issue-456")
#=> "26c89ed68512269d003d32811bbd4527"