2015-05-12 5 views
0

Я ищу, чтобы создать таблицу, которая имеет следующие характеристики:MySQL Private Table?

  1. Не бросайте таблицу, если соединение закрываются, только падение, когда пользователь выбирает (поэтому я не могу использовать ВРЕМЕННОЕ ключевое слово)
  2. Держите таблицу конфиденциальной для каждого отдельного сеанса и не делитесь между пользователями (целевое приложение - настольное приложение, а не веб-приложение). Пользовательский сеанс может иметь несколько подключений MySQL и закрывается до завершения.
  3. Использование двигателя = Память

временная таблица близка к тому, что мне нужно, за исключением таблицы теряется всякий раз, когда соединение закрывается. Это нежелательно.

СИНТАКСИС: Когда пользователи запускают мое настольное приложение, мне нужно создать эту приватную таблицу. Пользователь будет взаимодействовать несколько раз с приложением, и каждый раз, когда мне нужно открыть соединение с MySQL, прочитайте/обновите таблицу, а затем закройте соединение. Наконец, как только пользователь закрывает приложение, я могу отказаться от таблицы. Все это время эта таблица предназначена для этого пользователя и не должна быть общей или конфликтующей с другими сеансами пользователей и их собственной копией той же таблицы.

Эта таблица должна быть связана с существующими разделяемыми таблицами (например, соединенными).

UPDATE: Я попытаюсь использовать Boost.Bimap, чтобы выполнить это в памяти.

+1

Я думаю, вам необходимо переконфигурировать ваше решение. Создайте таблицу сеанса, и пользователю будет предоставлен ключ сеанса при открытии приложения. Затем они взаимодействуют с общей таблицей с ключом сеанса. – Tobsey

+1

Мне нравится, как вы использовали самолет и пытаетесь превратить его в скейтборд. Я бы передумал, объясняя, что делается, и почему вы считаете, что «частная» таблица MySQL - это решение (очевидно, это не так, поскольку у вас есть способ, выходящий за рамки диаграмм). Это классическая проблема XY, и я настоятельно рекомендую объяснить, чего вы пытаетесь достичь, и отказаться от этого «частного» настольного решения. –

+1

Вы можете связать SQLite Db с приложением для обработки этих таблиц. Если это не связано с некоторыми из общих данных. –

ответ

1

Я думаю, что вы используете неправильный инструмент для работы, попробовать один из них:

  1. сеанса хранения (на стороне клиента)
  2. Memcached (на стороне сервера)
+0

Я думал, что спрошу, на всякий случай, есть такая вещь, как приватная таблица mysql. Мне, вероятно, придется использовать память приложения для этого. – panofish