Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: Ведение логов изменения

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (1): [1]   

> Без описания
pantela
Отправлено: 26 Мая, 2015 - 16:09:38
Post Id



Частый посетитель


Покинул форум
Сообщений всего: 765
Дата рег-ции: Авг. 2010  


Помог: 1 раз(а)




Имеется портал, где пользователи добавляют и верифицируют свой тел. номер
CODE (SQL):
скопировать код в буфер обмена
  1. CREATE TABLE IF NOT EXISTS `users_mobile_phone` (
  2.   `id` int(11) NOT NULL AUTO_INCREMENT,
  3.   `user_id` tinyint(4) NOT NULL,
  4.   `phone` varchar(9) COLLATE utf8_unicode_ci NOT NULL,
  5.   `phone_edit` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL COMMENT 'Лог изменённых номеров',
  6.   `status` tinyint(1) NOT NULL DEFAULT '0' COMMENT '-1: удалил, 0: добавил, 1: в ожидании, 2: подтвердил',
  7.   `datetime_send` datetime DEFAULT NULL COMMENT 'Время последнего отправления',
  8.   `send_count` tinyint(2) NOT NULL DEFAULT '0' COMMENT 'Количество отправления',
  9.   `datetime_result` datetime DEFAULT NULL COMMENT 'Время подтверждения',
  10.   `code` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL COMMENT 'SMS Код',
  11.   PRIMARY KEY (`id`)
  12. ) ENGINE=InnoDB  DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci AUTO_INCREMENT=8 ;
  13.  
  14. --
  15. -- Dumping data for table `users_mobile_phone`
  16. --
  17.  
  18. INSERT INTO `users_mobile_phone` (`id`, `user_id`, `phone`, `phone_edit`, `status`, `datetime_send`, `send_count`, `datetime_result`, `code`) VALUES
  19. (1, 108, '579556655', NULL, 1, '2015-01-08 13:15:46', 0, NULL, '245156'),
  20. (2, 108, '597101010', NULL, 1, '2015-01-08 13:40:03', 0, NULL, '514876'),
  21. (3, 89, '577123245', NULL, 0, NULL, 0, NULL, NULL),
  22. (4, 26, '597979797', NULL, 2, '2015-03-09 10:11:09', 1, '2015-03-09 11:08:22', '458461'),
  23. (5, 26, '555112233', NULL, -1, NULL, 0, NULL, NULL),
  24. (6, 92, '558383839', NULL, 0, NULL, 0, NULL, NULL),
  25. (7, 109, '593457146', NULL, 0, NULL, 0, NULL, NULL);


Вроде логику правильно составил... подправьте если не верно, но стоит один вопрос...
Я хочу что бы ввести лог. если пользователь изменяет тел. номер. т.к. вдруг он специально затрёт.
Для этого я создал поле "phone_edit" где и хочу хранить лог, я думаю достаточно хранить что было изменено и дату, но вот в каком формате хранить т.к. изменения могут быть несколько вот и все надо надо хранить... Наверное через разделитель какой нибудь или виде JSON массива?

спс.Ув.

(Отредактировано автором: 26 Мая, 2015 - 16:10:13)

 
 Top
Panoptik
Отправлено: 26 Мая, 2015 - 17:58:10
Post Id



Постоянный участник


Покинул форум
Сообщений всего: 2493
Дата рег-ции: Нояб. 2011  
Откуда: Одесса, Украина


Помог: 131 раз(а)




в varchar(255) много телефонов не влезет

хотите лог - создайте таблицу phone_log
user_id, created, phone

и храните историю номеров без ограничений


-----
Just do it
 
 Top
pantela
Отправлено: 26 Мая, 2015 - 23:48:45
Post Id



Частый посетитель


Покинул форум
Сообщений всего: 765
Дата рег-ции: Авг. 2010  


Помог: 1 раз(а)




Ну вместо "varchar" можно и "text" использовать, просто я тупо думао сохарять буду так напр. "568232478,2015-03-09 21:30:00;568987654,2015-03-12 10:00:00" т.е. где идёт тел, и через запятую разделяется дата и время, а через точку запятую второй лог...

И сразу сохранял бы и выводил бы, и не было бы доп. таблицы для JOIN запроса...

Для логов не надо будет вводить какой нибудь особый мониторинг или репорт, просто на всякий случий хотелось бы под рукой иметь, т.к. понимаю что ваш вариант по сравнению с моим более динамичный...

В итоге исходя из этого всего если особых проблемм нету, тогда просто посоветуйте в каком виде хранить лог т.е. "568232478,2015-03-09 21:30:00;568987654,2015-03-12 10:00:00" на сколько правельный... что-то не нравится как-бы..
 
 Top
MiksIr
Отправлено: 26 Мая, 2015 - 23:50:43
Post Id


Забанен


Покинул форум
Сообщений всего: 378
Дата рег-ции: Сент. 2014  


Помог: 10 раз(а)

[+]


Я бы тупо в файл писал.


-----
self-banned
 
 Top
Panoptik
Отправлено: 27 Мая, 2015 - 10:45:19
Post Id



Постоянный участник


Покинул форум
Сообщений всего: 2493
Дата рег-ции: Нояб. 2011  
Откуда: Одесса, Украина


Помог: 131 раз(а)




вариант с файлом хорош, но если писать все в один файл, то будет проблема с поиском по конкретному пользователю, если же писать для каждого пользователя в свой файл, то появится проблема очень большого количества файлов, что в свою очередь тоже вызывает неудобства

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


-----
Just do it
 
 Top
MiksIr
Отправлено: 27 Мая, 2015 - 11:54:11
Post Id


Забанен


Покинул форум
Сообщений всего: 378
Дата рег-ции: Сент. 2014  


Помог: 10 раз(а)

[+]


Какая проблема? grep "user=vasya" log.txt и никаких проблем ;)


-----
self-banned
 
 Top
pantela
Отправлено: 27 Мая, 2015 - 13:07:56
Post Id



Частый посетитель


Покинул форум
Сообщений всего: 765
Дата рег-ции: Авг. 2010  


Помог: 1 раз(а)




Panoptik пишет:
при этом я бы предложил формат разделителя - новая строка
т.е. с обзаца? тире на сколько я понимаю не получиться, т.к. у значения даты и времени тоже имеется тире.

Ну а читательность тут мало требуеммо, т.к. через phpMyadmin не будет происходить просмотр, макс. если в админке потом выводить, а там уже через implode уже как угодно выведишь, и explode заведёшь.

MiksIr пишет:
Какая проблема? grep "user=vasya" log.txt и никаких проблем ;)
Уточни...
 
 Top
MiksIr
Отправлено: 27 Мая, 2015 - 14:36:59
Post Id


Забанен


Покинул форум
Сообщений всего: 378
Дата рег-ции: Сент. 2014  


Помог: 10 раз(а)

[+]


Что уточнить? Команду grep?


-----
self-banned
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Вопросы новичков »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB