Помощь с добавлением данных отслеживания транзакций

  • Автор темы dearring
  • 42
  • Обновлено
  • 13, May 2024
  • #1
В веб-скрипте PHP-видео, который я пытаюсь изменить, есть процесс, в котором пользователи генерируют кредитные единицы из просмотренных видео.

Общий «баланс» кредитов хранится в таблице базы данных mysql с именем «Пользователь» в столбце с названием «баланс», при этом каждая сумма отражается в строке пользователя, а общая сумма «баланса» обновляется (увеличивается или уменьшается). , в зависимости от активности кредитов.

Однако, если к балансу добавляются, например, 2 кредита, невозможно отследить, какой тип активности вызвал общее изменение баланса.

Я считаю, что следует создать отдельную таблицу, в которую для каждой транзакции вставляется новая строка, влияющая на сумму? но я не знаю, как это сделать.

Любые рекомендации, которыми вы хотели бы поделиться, приветствуются. Что еще для этого может понадобиться? Или у вас есть идея получше/другая? Жду всех комментариев/предложений.

dearring


Рег
08 Feb, 2012

Тем
1

Постов
3

Баллов
13
  • 08, Jun 2024
  • #2
Это зависит от того, что вы собираетесь делать с записываемыми данными. Вы можете добавить простой столбец символов, который улавливает код. или Вы можете добавить столбец внешнего идентификатора, который ссылается на другую таблицу, в которой указан каждый тип.
 

Cookie1


Рег
05 Oct, 2012

Тем
0

Постов
2

Баллов
2
  • 09, Jun 2024
  • #3
Все, что вам нужно сделать, это создать новую таблицу «tracking_data».

Что-то вроде этого:

идентификатор bigint(18) не равен нулю auto_increment,

идентификатор пользователя bigint(18),

отслеживание_активности varchar(256),

тип активности символ (7),

дата активности_дата

Теперь на каждой странице активности, непосредственно перед обновлением баланса, добавьте записи в эту таблицу,

что-то вроде этого

вставить в
 tracking_data
(id, userid, track_activity, Activity_type, Activity_date) значения ( '', '123', 'просмотренное видео', 'добавить', 'метка времени') вставить в
 tracking_data


(id, userid, track_activity, Activity_type, Activity_date) значения

( '', '123', 'купленное видео', 'минус', 'временная метка')

Вы можете установить типы полей по-разному.

Вместо BIGINT() вы можете использовать INT().

Вместо varchar(256) вы можете использовать char().

Вместо типа активности, являющегося символом, вы можете использовать логическое значение (для добавления или уменьшения баланса)

Если ваш баланс обновления находится внутри функции, используйте эти вставки внутри этой функции, и вам не нужно будет изменять каждую страницу активности отдельно.
 

evgenia_f


Рег
28 Jul, 2010

Тем
0

Постов
5

Баллов
5
Тем
49554
Комментарии
57426
Опыт
552966