powered by simpleCommunicator - 2.0.51     © 2025 Programmizd 02
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / SQL Update or Insert
11 сообщений из 11, страница 1 из 1
SQL Update or Insert
    #39489527
tonchikp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Уважаемые форумчане! Требуется ваша помощь!

Подскажите, как правильно? Задача простая, нужно записать визит пользователя в базу данных .

Подключаемся к базе данных.

Обновляем запись о посетителе в таблице.

А вдруг посетитель впервые и его записи нет, значит вставляем запись.

Для развёртывания (для первого запуска): А вдруг таблицы нет, значит создаём таблицу.


Вопрос 1: Беспокоит то, что каждый раз при обновлении (update) куча холостых операций (create, insert), может это как то иначе решается, подскажите.
Вопрос 2: А как вы решаете задачи которые требуются однократно при первом запуске?
Вопрос 3: Подключение к базе данных. Может в другой файл переместить? Но тогда при перемещении файла будут проблемы, а если оставить - то постоянно открывается и закрывается подключение к базе данных в разных файлах.

Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
$db = new PDO('sqlite:file.sqlite');

$db -> exec("CREATE TABLE IF NOT EXISTS 'tableName' (

id PRIMARY KEY AUTOINCREMENT,
user TEXT UNIQUE NOT NULL,
visitCounter INTEGER DEFAULT '0'

)");

$db -> exec("INSERT OR IGNORE INTO 'tableName' (user) VALUES ('user1')");

$db -> exec("UPDATE 'tableName' SET visitCounter = visitCounter + 1 WHERE user = 'user1'");

unset($db);
...
Рейтинг: 0 / 0
SQL Update or Insert
    #39489532
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
tonchikpБеспокоит то, что каждый раз при обновлении (update) куча холостых операций (create, insert), может это как то иначе решается, подскажите.
Хм, create выполнить заранее, куда и как Вы развёртываете приложение на хостинг, сервер клиента, в облако, на мобильное устройство?

update не делать, только insert-ы с датой очередного посещения, значение visitCounter считать запросом, либо в фоне, либо (а вдруг у вас там большой поток данных) вообще лямбда-архитектуру использовать
...
Рейтинг: 0 / 0
SQL Update or Insert
    #39489534
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
tonchikpЗадача простая, нужно записать визит пользователя в базу данных .
А вообще для начала стоит разобраться в том, а что такое визиты и кому данные о них нужны.
Вот для меня это кто, когда и куда заходил. И я эти данные могу вертеть по разному, анализировать.
...
Рейтинг: 0 / 0
SQL Update or Insert
    #39489536
Фотография Hett
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Обычная практика - это управлять схемой базы данных при помощи так называемых миграций. Во многих PHP фреймворках это есть "с коробки". Есть и как отдельные продукты, например flyway (JAVA), на пхп не подскажу конкретных названий.
...
Рейтинг: 0 / 0
SQL Update or Insert
    #39489538
Фотография Hett
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
skyANAна мобильное устройство?
на пыхе то?)
...
Рейтинг: 0 / 0
SQL Update or Insert
    #39489541
tonchikp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
skyANAкуда и как Вы развёртываете приложение на хостинг, сервер клиента, в облако, на мобильное устройство?
На хостинг

skyANAupdate не делать, только insert-ы с датой очередного посещения, значение visitCounter считать запросом, либо в фоне, либо (а вдруг у вас там большой поток данных) вообще лямбда-архитектуру использовать
Неожиданно :) А если например нужно именно только количество посещений, разве не будет в этом случае куча бесполезной информации (во-первых), да и мне кажется прибавлять единичку проще с точки зрения производительности, нежели считать количество записей разрастающейся базы (во-вторых)
Разве нет?

skyANAВот для меня это кто, когда и куда заходил. И я эти данные могу вертеть по разному, анализировать.
Я знаю, для меня тоже так, просто упростил задачу чтобы лучше было видно зерно задачи
...
Рейтинг: 0 / 0
SQL Update or Insert
    #39489563
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
tonchikpА если например нужно именно только количество посещений, разве не будет в этом случае куча бесполезной информации
tonchikpskyANAВот для меня это кто, когда и куда заходил. И я эти данные могу вертеть по разному, анализировать.
Я знаю, для меня тоже так, просто упростил задачу чтобы лучше было видно зерно задачи
Вы уж определитесь, что у Вас за задача и какие данные Вам нужны.

Как Вы к примеру посчитаете количество визитов за последнюю неделю, если будете хранить только общее количество визитов пользователя?
...
Рейтинг: 0 / 0
SQL Update or Insert
    #39489564
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
HettskyANAна мобильное устройство?
на пыхе то?)
Есть энтузиасты, что на десятке китайских планшетов кластера разворачивают :)
...
Рейтинг: 0 / 0
SQL Update or Insert
    #39489567
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
И есть к примеру Bit Web Server (PHP,MySQL,PMA) , что is specially designed for mobile and tablet.
...
Рейтинг: 0 / 0
SQL Update or Insert
    #39489594
tonchikp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
skyANAВы уж определитесь, что у Вас за задача и какие данные Вам нужны.

Как Вы к примеру посчитаете количество визитов за последнюю неделю, если будете хранить только общее количество визитов пользователя?
Не, в реальной задаче я по другому спроектирую базу данных и если нужно будет всё учтётся. Просто вопрос не в этом, поэтому для упрощения пусть от посетителя нужно только количество, как сказано в первом сообщении
...
Рейтинг: 0 / 0
SQL Update or Insert
    #39489598
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
tonchikpskyANAВы уж определитесь, что у Вас за задача и какие данные Вам нужны.

Как Вы к примеру посчитаете количество визитов за последнюю неделю, если будете хранить только общее количество визитов пользователя?
Не, в реальной задаче я по другому спроектирую базу данных и если нужно будет всё учтётся. Просто вопрос не в этом, поэтому для упрощения пусть от посетителя нужно только количество, как сказано в первом сообщении
Хм, я отвечал на: "может это как-то иначе решается". Если не подходит, потому как задача не реальная, так я ведь не настаиваю. Решайте как Вам виднее :)
...
Рейтинг: 0 / 0
11 сообщений из 11, страница 1 из 1
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / SQL Update or Insert
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]