42 / 42 / 2
Регистрация: 22.11.2012
Сообщений: 225
|
|
1 | |
Наилучший способ хранения "таблиц в таблицах"11.01.2013, 15:02. Показов 792. Ответов 5
Метки нет (Все метки)
Не знал, как правильней назвать тему, вышло так
На тему нижеописанного приложения я уже начинал тему на форуме, но сейчас уже дело касается другой его стороны. Вкратце: приложение парсит театральный сайт, забирая список спектаклей и состав артистов на каждый из них. С постоянным подключением к инету всё работает, и теперь хотелось бы сделать возможность оффлайновой работы. В чём, собственно, вопрос: Есть массив с названиями спектаклей. Последовательно вычитываю составы, имея возможность складывать их аналогично в массивы. Как лучше сохранять такие связанные между собой данные (массив названий спектаклей -> спектакль_N -> массив артистов)? С использованием БД, текстовых файлов в памяти телефона, либо как-то ещё? Извиняюсь, что создаю уже третью тему с различными вопросами о своём приложении, но уж очень хочется с самого начала изучения Андроид усвоить правильные методы написания кода. Заранее спасибо!
0
|
11.01.2013, 15:02 | |
Ответы с готовыми решениями:
5
Разработать способ экономного хранения в памяти разреженных матриц (таблиц) Наилучший способ выучить C++ Наилучший способ раскодировать текст Наилучший способ распарсить html текст Наилучший способ добавления строк в начало строки |
1162 / 986 / 1
Регистрация: 28.06.2012
Сообщений: 3,462
|
||||||
11.01.2013, 23:17 | 2 | |||||
1
|
42 / 42 / 2
Регистрация: 22.11.2012
Сообщений: 225
|
|
12.01.2013, 00:06 [ТС] | 3 |
Спасибо, V0v1k, очень красивая конструкция!
Я сначала жалел, что в JAVA нет структур, как в С/С++, но теперь вижу, что в этом отношении возможности языка гораздо шире. Супер. Правда, мой вопрос был не совсем об этом: я думал, в каком виде хранить данные, чтобы они сохранялись после выхода из приложения. Пока сегодня ехал с работы, пришла одна идея (ещё не реализовывал): Создать базу данных с тремя таблицами: 1-я таблица - спектакли, поля (кроме primary key): Performance (название спектакля) Perf_ID (ID группы полей других таблиц с именами артистов и персонажей) 2-я таблица - актёры, поля (кроме primary key): Actor_Name (имя актёра) Perf_ID (ID спектакля, к которому относится) Pers_ID(ID персонажа, с которым связан) 3-я таблица - персонажи, поля (кроме primary key): Pers_Name (имя персонажа) Perf_ID (ID спектакля, к которому относится) Actor_ID(ID актёра, с которым связан) Например: 1-я таблица: Performance = "Щелкунчик" Perf_ID = 12 2-я таблица: Actor_Name = "Иван Иванов" Perf_ID = 12 Pers_ID = 3 3-я таблица: Pers_Name = "2-я снежинка" Perf_ID = 12 Actor_ID = 3 и т.д. И таким образом находить связанные между собой записи. Базы данных я впервые начал юзать одновременно с изучением Android, так что, может, тоже придумал не совсем оптимально..
0
|
1162 / 986 / 1
Регистрация: 28.06.2012
Сообщений: 3,462
|
|
12.01.2013, 00:49 | 4 |
1-я таблица - performances
id - primary key name 2-я таблица - actors id - primary key name 3-я таблица - characters id - primary key actors_id - foreign key performances_id - foreign key
1
|
42 / 42 / 2
Регистрация: 22.11.2012
Сообщений: 225
|
|
12.01.2013, 00:57 [ТС] | 5 |
То что надо! Прекрасное решение, а то я слишком усложнил
Спасибо большое, V0v1k.
0
|
1162 / 986 / 1
Регистрация: 28.06.2012
Сообщений: 3,462
|
|
12.01.2013, 01:00 | 6 |
правда здесь не предусмотрена ситуация что кроме того, что актер может играть нескольких персонажей еще и одного персонажа могут играть несколько актеров (http://www.firststeps.ru/mfc/msdn/r.php?117 - вот вам связь много ко многим на всякий случай)
Добавлено через 18 секунд http://office.microsoft.com/ru... section=23
0
|
12.01.2013, 01:00 | |
12.01.2013, 01:00 | |
Помогаю со студенческими работами здесь
6
Определить наилучший способ использования пунктов обслуживания Наилучший способ извлечения лимитированного количества данных из бд Какой наилучший и наибезопаснейший способ из Python в .exe Какой наилучший способ обновления информации в потоке? Какой наилучший и простой способ написать БД в Delphi xe3 Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |