Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Web программирование > SQL, базы данных
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 22.08.2016, 13:49   #31
predefined
Форумчанин
 
Регистрация: 01.08.2016
Сообщений: 182
По умолчанию

Да, можно делать выборку сразу из нескольких связанных таблиц (JOIN), только в вашем случае это незачем. 2 запроса к БД займут миркосекунды, у вас выборки не сложные. Это не то, на чём надо экономить.

А держать всё в одной таблице - придётся дублировать в каждой строке все общие поля. Целостность данных при этом может пострадать.


PS: Современные движки делают до 200 MySQL-запросов для формирования одной страницы сайта.
predefined вне форума Ответить с цитированием
Старый 22.08.2016, 13:50   #32
come-on
Участник клуба
 
Регистрация: 21.10.2015
Сообщений: 1,361
По умолчанию

Цитата:
можно делать выборку сразу из нескольких связанных таблиц (JOIN), только в вашем случае это незачем
это всегда зачем
come-on вне форума Ответить с цитированием
Старый 22.08.2016, 20:05   #33
Illusiony
Форумчанин
 
Регистрация: 17.02.2014
Сообщений: 881
По умолчанию

predefined
"И можно ничего не мутить с "реализацией посылки сразу нескольких кликов, если их частота составляет быстрее 1 раза в секунду". В случае чего, очередь будет сделана операционной системой при приёме TCP/IP пакетов, и вторая - на MySQL если он не будет успевать за вашим скриптом."

Возможно я плохо объяснил. Под пакетами я имел ввиду обыкновенный post запрос в котором несколько кликов объединены в одну общую строку.
Думаю на счет реализации вашего предложения #27

Но опять хочу напомнить и спросить :

скорость посылки запросов от обоих программ врятли будет чаще 1 раза в секунду. Т.е. вероятность того что запросы от обоих программ придут в одно время чтобы случилась коллизия между отдельными запросами, наверняка, оооочень мала? Т.е. я как бы не уверен стоит ли вообще что то городить.
Illusiony вне форума Ответить с цитированием
Старый 23.08.2016, 12:35   #34
predefined
Форумчанин
 
Регистрация: 01.08.2016
Сообщений: 182
По умолчанию

Illusiony, я под "пакетами" то же самое имел ввиду. Да, технически неграмотно выразился.

На счёт коллизий. TCP/IP - среда с негарантированной доставкой пакетов(тут уже "пакеты" именно те). По дороге пакеты могут дробится маршрутизаторами на более мелкие и потом собираться обратно маршрутизатором на выходе.
Любой такой мелкий пакетик может потеряться, тогда он будет отослан заново, и на это тратится время.

Поэтому в Интернете возможны коллизии, когда второй посланный пакет придёт вперёд первого.
Я бы не стал рисковать, и сделал обработку с учётом возможности одновременного прихода пакетов от обеих программ.
Потому, что отловить такие ошибки потом будет очень сложно. На одних провайдерах интернета всё будет работать, а на других - загадочно глючить.
Критично это или нет - решать вам. Может потеря пары пакетов с данными и не важна для работы ваших приложений.
predefined вне форума Ответить с цитированием
Старый 23.08.2016, 20:17   #35
Illusiony
Форумчанин
 
Регистрация: 17.02.2014
Сообщений: 881
По умолчанию

predefined, А мне получается нужен формат времени в микросекундах? Ведь с дискретностью в 1 секунду возможно появление одинакового времени.
А вместо времени можно же присылать от программы просто счетчик с номером клика вместо timestamp . Сделать его например SMALLINT 65 тысяч вполне хватит до переполнения.

Последний раз редактировалось Illusiony; 23.08.2016 в 21:30.
Illusiony вне форума Ответить с цитированием
Старый 23.08.2016, 21:48   #36
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

Цитата:
Поэтому в Интернете возможны коллизии, когда второй посланный пакет придёт вперёд первого.
нет, TCP так же гарантирует и порядок в пределах одного соединения/потока.

ТС, я что-то смотрю, а вам точно вообще нужна БД?
может на очереди посмотреть?
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Старый 23.08.2016, 21:56   #37
Illusiony
Форумчанин
 
Регистрация: 17.02.2014
Сообщений: 881
По умолчанию

Цитата:
Сообщение от Пепел Феникса Посмотреть сообщение
нет, TCP так же гарантирует и порядок в пределах одного соединения/потока.

ТС, я что-то смотрю, а вам точно вообще нужна БД?
может на очереди посмотреть?
Бд точно нужна, кроме того что я описываю, еще много чего будет и уже частично есть кое что.
Illusiony вне форума Ответить с цитированием
Старый 23.08.2016, 22:35   #38
come-on
Участник клуба
 
Регистрация: 21.10.2015
Сообщений: 1,361
По умолчанию

можно и в базе очередь организовать весьма просто, но автор уперся в какието чистилки и еще не пойми во что
come-on вне форума Ответить с цитированием
Старый 24.08.2016, 11:26   #39
predefined
Форумчанин
 
Регистрация: 01.08.2016
Сообщений: 182
По умолчанию

Цитата:
Сообщение от Illusiony Посмотреть сообщение
А вместо времени можно же присылать от программы просто счетчик с номером клика вместо timestamp . Сделать его например SMALLINT 65 тысяч вполне хватит до переполнения.
Можно, конечно. timestamp был сделан чтобы гарантированно не было переполнения в ячейке БД. Я же не знал объёмы ваших данных.
Как я понимаю, Приложение 2 просто должно знать порядок прихода данных,чтобы обрабатывать их в том же порядке, как они приходили.

Возможно, достаточно будет поля автоинкремент в БД, но тогда будет не "порядок отправки данных Приложением" а "порядок их поступления на сервер". Они могут не всегда совпадать, см поправку от Пепел Феникса выше.


Цитата:
Сообщение от Пепел Феникса Посмотреть сообщение
нет, TCP так же гарантирует и порядок в пределах одного соединения/потока.
Да. И если держать http-соединение постоянно открытым (keep-alive), очерёдность отправленных данных тоже должна соблюдаться.
Но автор планирует посылать данные отдельными http-запросами, там теоретически может быть и каша.

Последний раз редактировалось predefined; 24.08.2016 в 11:31.
predefined вне форума Ответить с цитированием
Старый 24.08.2016, 11:37   #40
predefined
Форумчанин
 
Регистрация: 01.08.2016
Сообщений: 182
По умолчанию

Цитата:
Сообщение от come-on Посмотреть сообщение
можно и в базе очередь организовать весьма просто, но автор уперся в какието чистилки и еще не пойми во что
Он ещё начинающий кодер, поэтому готовых "велосипедов" у него в арсенале нет.
Тем, не менее, он не поленился и в "поисках истины" накидал тест. Уважаю упорных и настойчивых.
predefined вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Написать программу, с помощью которой изображение будет разбиваться по пикселям и будет создаваться матрица andrey4515 Помощь студентам 2 08.01.2014 18:44
Будет ли сервер idTCP работать без веделенного внешнего ip (Delphi Indy) _PROGRAMM_ Помощь студентам 1 29.11.2010 13:52
какая структура *.icns?? Ntlegend Общие вопросы Delphi 3 02.09.2009 01:24
Учет оплаты. Какая формула будет если..? Anton_audit Microsoft Office Excel 5 12.08.2009 17:40
посчитать какая доставка для клинта 10-я? Delphi (Клиент-Сервер) Vindigo Помощь студентам 6 27.01.2008 15:28