2015-02-19 3 views
0

Я отважился на крайне неизвестную территорию, и мне нужен совет. Я создаю бот IRC для Twitch, который потенциально может содержать сотни тысяч учетных записей. Раньше я использовал Dictionary (из String, Integer) для хранения этих учетных записей и их баланса в памяти, а просто написал их в текстовый файл и сохранил на диск. Теперь я храню гораздо больше данных, например, их онлайн-время, независимо от того, являются ли они подписчиком или подписчиком, сколько они пожертвовали. Поэтому я начал использовать SQLite для хранения учетных записей, и я считаю, что мне нужно использовать DataGridView с virtualmode, чтобы отображать эти учетные записи и разрешать пользователю редактировать любые данные. Неужели я на правильном пути? Моя цель - сохранить его простым при управлении большим количеством данных, надеюсь, что это не оксюморон.Правильное обращение с большими суммами данных

Теперь я предполагаю, что учетные записи в базе данных SQLite необходимо будет кэшировать, чтобы он не постоянно читал базу данных с жесткого диска, когда необходимо произвести изменение или когда пользователь просматривает свой список учетных записей в datagridview (который находится в виртуальном режиме). До сих пор я прав?

Если есть другой, более простой способ, который я мог бы использовать, пожалуйста, дайте мне знать, иначе кто-нибудь поможет понять, как я могу кэшировать эти учетные записи? Я решил написать их в словаре (String, String), а затем разделил строку, когда мне нужно было работать с определенным значением. В любом случае я жду ваших предложений или комментариев. Спасибо.

+1

Это очень широкий вопрос для любого, кто может ответить, поскольку проблема может быть решена различными способами. Вы упомянули, что есть большие объемы данных, и это не имеет значения. Самое главное, что вам на самом деле нужно делать с этим. Вы изучали классы и т. Д., Чтобы справиться с этим? Я бы сосредоточил свое внимание на классах, если вы еще этого не сделали, когда вы упоминаете, что имеете дело со многими другими предметами. Тогда вы можете подумать о словаре (Integer, yourclass) или ListOf; где integer - идентификатор учетной записи, а ваш класс - объект, связанный с этим идентификатором ... – Codexer

+0

Классы были другой идеей, которую я рассматривал. У меня нет большого опыта в создании их. Создать класс учетной записи и настроить различные свойства для хранения значений, которые мне нужны? Затем создайте новую учетную запись (класс) для каждой учетной записи, хранящейся в моей базе данных? – Josh

+0

см. Мой ответ, он затрагивает эту информацию. Да, это просто и мало, но поставит вас на правильный путь, чтобы начать. – Codexer

ответ

1

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

Public Class Accounts 
    Public Property AccountID As Integer = 0 
    Public Property AccountName As String = String.Empty 
    Public Property IsFollower As Boolean = False 
    **'Add more properties as needed'** 

    Public Sub New() 

    End Sub 

End Class 

Далее вы можете позвонить в свою базу данных и получить все идентификаторы из таблицы; Вы можете использовать их, чтобы запросить остальную часть данных для определенного идентификатора ...

Loop через ваши идентификаторы, которые вы имеете и получить свои данные ...

Dim nAccount As Account = Nothing 
For each blah blah blah.... 
    nAccount = query from database... which will return your Account class object... 

Теперь вы можете добавить этот объект (ваш класс учетной записи) в коллекцию; например Dictionary(Of Integer, Account) или ListOf()

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

+0

Я убежден, что это способ сделать это. Сейчас я начну работать над этим. Спасибо. – Josh

+0

Добро пожаловать, удачи! – Codexer

Смежные вопросы