У меня есть концепция Акции, которая представляет собой конкретную акцию, принадлежащую конкретному акционеру.Сейчас я пытаюсь добавить функциональность, которая поддерживает отслеживание «истории» этой акции с течением времени, поскольку она может быть передана другим акционерам и т. Д.
В моей базе данных для каждой записи Share
естьв настоящее время столбец t.string "transaction_ids"
.Возможно, мне следует изменить тип столбца, который я предполагаю, на что-то более простое в работе.Открыты для предложений здесь.
Два соответствующих метода - это создание новых акций и передача прав собственности на эти акции.
Вот как изначально создается общий ресурс.
@number_of_share_numbers_to_create.times do |i|
Share.create(
owner_id: params[:buying_shareholder_id],
captable_id: @transaction.captable.id,
company_id: @transaction.company.id,
share_number: @latest_share += 1,
transaction_ids: @transaction.id #Save transaction id to DB
)
end
Затем, когда передается Share
, у меня есть следующий метод.
@share_numbers_on_cap.each do |share|
share.update_attribute(:owner_id, @buying_shareholder.id)
# TODO Capture share history by pushing @transaction.id into the transaction_ids column.
# Perhaps I could do something like share.transaction_ids >> @transaction.id or something?
end
Я знаю, что это текущее решение не является оптимальным, и мне бы хотелось получить несколько советов о том, как решить эту проблему более масштабируемым образом.Возможно, мне следует использовать другой тип столбца и создать массив?Хотел бы немного подтолкнуть в правильном направлении.
Спасибо!