Ответы пользователя по тегу SQLite
  • Как избегать блокировки BD?

    @acwartz
    Тут должна быть ваша реклама.
    Как осуществляется доступ к базе данных? Потоки есть? как они работают с БД?
    SQLite это однопользовательская БД с одной точкой доступа. У неё нет понятия сессий и доступа к ней из разных потоков и тем более под разными учетными записями. Считайте что наливаете тысячи литров воды в бассеин через угольное ушко, используя сифон (воронку).
    и где весь стэк? хотяб по внутренностям пакета sqlite чтобы видеть что вы дергаете и с чем оно падает.
    Ответ написан
    Комментировать
  • Отобразить фото с базы данных в table widget?

    @acwartz
    Тут должна быть ваша реклама.
    b - binary. Загрузить в поток, и далее в контейнер для отображения картинок.
    qp = QPixmap()
    qp.loadFromData(my_bytes)


    где my_bytes - бинарные данные поля Photo.

    Вместо photo хранить ссылку (целое число) на таблицу Photos где и будет размещен BLOB с данными, там быстрее будет работа с таблицей, а картинку можете отобразить когда она реально нужна.
    Ответ написан
    Комментировать
  • Как мне правильно построить структуру данных для игры?

    @acwartz
    Тут должна быть ваша реклама.
    У вас проблема не с SQLite а целиком со знаниями баз данных и SQL в частности.

    Можно все поместить в одну таблицу(сообщения, достижения, перки, бонусы и многое другое), тогда столбцов у меня выходит порядка 25-27

    Нельзя так, это все разные сущности, которые вы захотите расширять новыми полями и что более важно - связывать их с новыми сущностями, например дать игрокам возможность групповых чатов, или например вложения в сообщения лепить или ещё бог весть что, и не сможете этого сделать после выхода вашего ПО в свет. Придется писать очень замудреные скрипты по миграции данных в т.ч. тех которые и не менялись даже.

    Пользователи это таблица Users где есть поле ID котрое получает значение при вставке записи и это значение не меняется.
    Есть сообщения это таблица Messages.
    где есть Autokey получающее значение при вставке записи, есть поле-индекс DateCreate с датой и временем создания сообщения, есть поле Message - текст сообщения, так же поля От кого (ссылка на Users.ID) и кому (Users.ID)

    Есть ачивки, таблица Achivements:
    Поле UserID (Users.ID) связь с тем кто ачивку получил
    Поле даты и времени получения,
    поле идентификатора ачивки
    поле описания ачивки
    поле с картинкой ачивки

    Бонусы, таблица Bunuses:
    Поле UserID (Users.ID) связь с тем кто бонус получил
    Поле даты и времени получения,
    поле идентификатора бонуса
    поле описания бонуса
    поле с картинкой бонуса
    поле обозначающее позитивный или негативный бонус
    поле даты и времени завершения действия бонуса, если NULL то бонус вечный

    Таблица с перками - Perks:
    Поле UserID (Users.ID) связь с тем кто бонус получил
    Поле даты и времени получения,
    поле идентификатора перка (PerkID)

    это все легко расширяется новыми полями и если надо обрастает новыми связями с новыми изменениями.
    А если вы все в кучу кидаете, на кой вам вообще база данных?
    загоняйте все в json/xml.
    Ответ написан
    1 комментарий
  • Как воспользоваться OR в sequelize?

    @acwartz
    Тут должна быть ваша реклама.
    создай таблицу Relationships вместо parent1, parent2:
    Autokey, PersonAID, PersonBID, RelationType

    тогда сможешь добавлять любые типы взаимоотношений PersonAID к PersonBID, не только для User к Children но и User к User и даже Children к Children
    Где в вашем случае будет 2 записи с разными User.ID и одинаковым Children.ID
    Ответ написан
    Комментировать