Форум программистов, компьютерный форум, киберфорум
Наши страницы
Программирование Android
Войти
Регистрация
Восстановить пароль
 
 
Рейтинг 5.00/4: Рейтинг темы: голосов - 4, средняя оценка - 5.00
loren96
0 / 0 / 1
Регистрация: 06.04.2015
Сообщений: 75
#1

Возможно ли создание двух баз данных

12.05.2015, 17:48. Просмотров 771. Ответов 26
Метки нет (Все метки)

Возможно ли создание двух баз? А так же как скажеться на производительности такое решение. Одна база данных заполнена, а другую пользователь заполняет по желанию
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
12.05.2015, 17:48
Ответы с готовыми решениями:

Запрос данных по ID из нескольких баз данных
Доброго времени суток. Суть вопроса: есть две готовых таблицы: text и buttons,...

Хостинг для баз данных
Делал простые android приложения и был счастлив. Только сейчас встала...

Синхронизация баз данных через облако
Здравствуйте! Имеется несколько баз данных на разных ОС, включая Android, беда...

Синхронизация баз данных на клиенте и сервере
Здравствуйте, подскажите как реализовать простенькое клиент-серверное...

Взаимодействие баз данных на сервере и мобильном устройстве
Здравствуйте, необходимо найти информацию по теме что в шапке написана. Вообще...

26
Rube
911 / 559 / 88
Регистрация: 13.02.2014
Сообщений: 2,074
12.05.2015, 17:56 #2
Да хоть 10 думаю, только не запутаться бы. Но зачем?
0
loren96
0 / 0 / 1
Регистрация: 06.04.2015
Сообщений: 75
12.05.2015, 18:03  [ТС] #3
Для удобства. Ведь, мне кажется, что гораздо лучше будет разделить данные на две базы. Одна та что статическая, вторая та, которую пользователь заполняет сам по желанию.

Может знаете. Как добавить фото в базу данных пользователю? Перекопал множество инфы, пересмотрел уроки на СтартАндроид но так и не нашел.

Вот есть две базы. Одна уже заполнена информацие с картинками, с ней проблем нету. В базе хранятся ссылки на фотографии которые лежат в папке "drawable". Как можно сохранить картинку к себе в альбом? Ну или создать свою папку в корне карты. Вторая база пустая, пользователь должен сам свои картинки загружать. И проблема в том что с текстом без проблем работает. А вот как картинки всунуть без понятия. Например при нажатии кнопки обзор откроется галерея, где нужно будет выбрать фото, для загрузки в БД
0
Mikalai
264 / 240 / 95
Регистрация: 11.01.2015
Сообщений: 670
12.05.2015, 18:56 #4
Вот тут описано как сохранить изображение на телефон(изображение будет доступно всем приложениям). потом в базу ссылку кинешь на него кинешь.
0
loren96
0 / 0 / 1
Регистрация: 06.04.2015
Сообщений: 75
12.05.2015, 19:00  [ТС] #5
Немножко не понятно как происходит сам процесс сохранения фотографии. И как сохранить именно из базы данных. Ведь там, в базе, не изображение а ссылка на него. По сути получается что нужно просто скопировать изображение из папки.
0
Rube
911 / 559 / 88
Регистрация: 13.02.2014
Сообщений: 2,074
12.05.2015, 19:00 #6
Может лучше не 2 базы, а таблицу для пользователя отдельную?
Картинки как сказал Mikalai, надо путь только хранить, или просто имя, если путь - константа.
0
loren96
0 / 0 / 1
Регистрация: 06.04.2015
Сообщений: 75
12.05.2015, 19:19  [ТС] #7
Я просто упрощаю немного себе задачу, так как не очень понимаю в этом. Нужно будет создавать отдельную колонку. А потом еще и отсортировать их на наличие не пустой колонки "пользователь".

Добавлено через 1 минуту
так у меня же и храниться в базе только путь. Весь смысл в том что бы вытащить картинку из папки "drawable"

Добавлено через 16 минут
Java
1
2
3
4
5
6
7
8
private void saveFullImage() {
    Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
    File file = new File(Environment.getExternalStorageDirectory(),
            "test.jpg");
    outputFileUri = Uri.fromFile(file);
    intent.putExtra(MediaStore.EXTRA_OUTPUT, outputFileUri);
    startActivityForResult(intent, TAKE_PICTURE);
}
Я так понял вот этот кусочек кода который сохраняет.

Объясните если не сложно, как сделать сохранение при долгом нажатии?

Вот тут у меня при долгом нажатии удаляет элемент. А как добавить еще один пункт - Сохранить? Дело в том что больше двух пунктов не добавлял в такое меню.
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
public void onCreateContextMenu(ContextMenu menu, View v,
                                    ContextMenuInfo menuInfo) {
        super.onCreateContextMenu(menu, v, menuInfo);
        menu.add(0, CM_DELETE_ID, 0, R.string.delete_record);
    }
 
    public boolean onContextItemSelected(MenuItem item) {
        if (item.getItemId() == CM_DELETE_ID) {
           
            AdapterContextMenuInfo acmi = (AdapterContextMenuInfo) item
                    .getMenuInfo();
            
            db.delRec(acmi.id);
            
            getSupportLoaderManager().getLoader(0).forceLoad();
            return true;
        }
        return super.onContextItemSelected(item);
    }
0
Rube
911 / 559 / 88
Регистрация: 13.02.2014
Сообщений: 2,074
12.05.2015, 19:23 #8
Цитата Сообщение от loren96 Посмотреть сообщение
Нужно будет создавать отдельную колонку. А потом еще и отсортировать их на наличие не пустой колонки "пользователь".
Хозяин барин, но со второй базой соответственно и работы в 2 раза больше.
Цитата Сообщение от loren96 Посмотреть сообщение
Например при нажатии кнопки обзор откроется галерея, где нужно будет выбрать фото, для загрузки в БД
Картинка уже хранится в телефоне? Смысл ее дублировать? не говоря уже о тм, что в БД ее не засунуть.

Добавлено через 1 минуту
Цитата Сообщение от loren96 Посмотреть сообщение
А как добавить еще один пункт - Сохранить?
menu.add(0, CM_ADD_ID, 1, R.string.add);

Добавлено через 59 секунд
А в onContextItemSelected пользовать switch - case
0
loren96
0 / 0 / 1
Регистрация: 06.04.2015
Сообщений: 75
12.05.2015, 19:37  [ТС] #9
да, картинка уже в телефоне.

Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
public void onCreateContextMenu(ContextMenu menu, View v,
                                    ContextMenuInfo menuInfo) {
        super.onCreateContextMenu(menu, v, menuInfo);
        menu.add(0, CM_DELETE_ID, 0, R.string.delete_record);
        menu.add(0, CM_ADD_ID, 1, R.string.save_record);
    }
 
    public boolean onContextItemSelected(MenuItem item) {
        if (item.getItemId() == CM_DELETE_ID) {
           
            AdapterContextMenuInfo acmi = (AdapterContextMenuInfo) item
                    .getMenuInfo();
            
            db.delRec(acmi.id);
            
            getSupportLoaderManager().getLoader(0).forceLoad();
            return true;
        }
        return super.onContextItemSelected(item);
    }

А как правильно туда case записать?

Добавлено через 6 минут
да, картинка уже в телефоне.

Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
public void onCreateContextMenu(ContextMenu menu, View v,
                                    ContextMenuInfo menuInfo) {
        super.onCreateContextMenu(menu, v, menuInfo);
        menu.add(0, CM_DELETE_ID, 0, R.string.delete_record);
        menu.add(0, CM_Save_ID, 1, R.string.save_record);
    }
 
    public boolean onContextItemSelected(MenuItem item) {
        
switch (v.getId()) {
                    case R.id.button1:
                     private void saveFullImage() {
    Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
    File file = new File(Environment.getExternalStorageDirectory(),
            "test.jpg");
    outputFileUri = Uri.fromFile(file);
    intent.putExtra(MediaStore.EXTRA_OUTPUT, outputFileUri);
    startActivityForResult(intent, TAKE_PICTURE);
}
                  break;
 
 
case R.id.button2:
 
AdapterContextMenuInfo acmi = (AdapterContextMenuInfo) item
                    .getMenuInfo();
            
            db.delRec(acmi.id);
            
            getSupportLoaderManager().getLoader(0).forceLoad();
            return true;
} 
 
 
        return super.onContextItemSelected(item);
    }

Если не трудно можете поправить что не так?
0
Rube
911 / 559 / 88
Регистрация: 13.02.2014
Сообщений: 2,074
12.05.2015, 19:47 #10
ммм... методы в методе?
Java
1
2
3
4
5
AdapterContextMenuInfo acmi = (AdapterContextMenuInfo) item.getMenuInfo(); // это в самый вверх до switch 
...
case R.id.button1: saveFullImage();
...
getSupportLoaderManager().getLoader(0).forceLoad(); // это вниз
0
loren96
0 / 0 / 1
Регистрация: 06.04.2015
Сообщений: 75
12.05.2015, 21:02  [ТС] #11
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
AdapterContextMenuInfo acmi = (AdapterContextMenuInfo) item.getMenuInfo();
public void onCreateContextMenu(ContextMenu menu, View v,
                                    ContextMenuInfo menuInfo) {
        super.onCreateContextMenu(menu, v, menuInfo);
        menu.add(0, CM_DELETE_ID, 0, R.string.delete_record);
    }
private void saveFullImage() {
    Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
    File file = new File(Environment.getExternalStorageDirectory(),
            "test.jpg");
    outputFileUri = Uri.fromFile(file);
    intent.putExtra(MediaStore.EXTRA_OUTPUT, outputFileUri);
    startActivityForResult(intent, TAKE_PICTURE);
}
 
 
    public boolean onContextItemSelected(MenuItem item) {
        switch (v.getId()) {
                    case R.id.button1: saveFullImage();
                     
                  break;
 
 
case R.id.button2:
            
            db.delRec(acmi.id);
                        
            return true;
} 
          
            
           
            db.delRec(acmi.id);
            
            getSupportLoaderManager().getLoader(0).forceLoad();
            return true;
        }
        return super.onContextItemSelected(item);
        getSupportLoaderManager().getLoader(0).forceLoad();
    }

Знаю, вопросы глупые. Вы уж извините... так как не сильно разбираюсь. Все равно не понятно как это кейс поставить. Перепробовал много вариантов но так и не работает.
0
Rube
911 / 559 / 88
Регистрация: 13.02.2014
Сообщений: 2,074
12.05.2015, 21:16 #12
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
public void onCreateContextMenu(ContextMenu menu, View v, ContextMenuInfo menuInfo) {   
    super.onCreateContextMenu(menu, v, menuInfo);
    menu.add(0, CM_DELETE_ID, 0, R.string.delete_record);   
    menu.add(0, CM_ADD_ID, 0, R.string.add);
}
 
private void saveFullImage() {
    Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
    File file = new File(Environment.getExternalStorageDirectory(), "test.jpg");
    outputFileUri = Uri.fromFile(file);
    intent.putExtra(MediaStore.EXTRA_OUTPUT, outputFileUri);
    startActivityForResult(intent, TAKE_PICTURE);
}
 
public boolean onContextItemSelected(MenuItem item) {   
    AdapterContextMenuInfo acmi = (AdapterContextMenuInfo) item.getMenuInfo();
    switch (item.getItemId()) {
    case CM_ADD_ID: saveFullImage();
        break;
    case CM_DELETE_ID:
        db.delRec(acmi.id);
        break;      
    }       
    return true;
}
0
Spelcrawler
531 / 501 / 113
Регистрация: 12.03.2014
Сообщений: 1,666
Завершенные тесты: 1
13.05.2015, 00:23 #13
Цитата Сообщение от Rube Посмотреть сообщение
не говоря уже о тм, что в БД ее не засунуть.
Засунуть то можно, но ЗАЧЕМ?
0
Rube
911 / 559 / 88
Регистрация: 13.02.2014
Сообщений: 2,074
13.05.2015, 07:07 #14
Цитата Сообщение от Spelcrawler Посмотреть сообщение
Засунуть то можно, но ЗАЧЕМ?
Была тут тема с полгодика назад, еле уговорили человека не засовывать
0
loren96
0 / 0 / 1
Регистрация: 06.04.2015
Сообщений: 75
13.05.2015, 08:08  [ТС] #15
а как оно на производительности скажется? Если несколько баз данных иметь.
0
Rube
911 / 559 / 88
Регистрация: 13.02.2014
Сообщений: 2,074
13.05.2015, 09:10 #16
Да практически никак, если не миллион записей.
0
loren96
0 / 0 / 1
Регистрация: 06.04.2015
Сообщений: 75
13.05.2015, 10:04  [ТС] #17
не думаю что для большого количества данных используют SQLite

Добавлено через 14 минут
У меня красным светиться

Java
1
CM_ADD_ID
По аналогии можно сделать как и у

то есть так
Java
1
private static final int CM_ADD_ID = 1;
Это я взял с сайта. И не могу понять что значит 1

Добавлено через 6 минут
Ага, все я понял. Это ID элемента в меню. И они не могут дублироваться

Добавлено через 5 минут
Все поставил. Все сделал но при попытке удалить ничего не происходит. А при попытке сохранить открывается камера
0
Rube
911 / 559 / 88
Регистрация: 13.02.2014
Сообщений: 2,074
13.05.2015, 10:25 #18
Цитата Сообщение от loren96 Посмотреть сообщение
Это ID элемента в меню
Ну да, типо того, для удобства, хотя можно вообще использовать 0 и 1.
Цитата Сообщение от loren96 Посмотреть сообщение
Все сделал но при попытке удалить ничего не происходит
db.delRec(acmi.id); что там в delRec? acmi.id чему равен?
А логи используете для просмотра переменных? При разработке их надо вообще на каждую переменную писать.
Цитата Сообщение от loren96 Посмотреть сообщение
А при попытке сохранить открывается камера
Может бог с ними с фотками, камеру будем делать?
0
loren96
0 / 0 / 1
Регистрация: 06.04.2015
Сообщений: 75
13.05.2015, 12:03  [ТС] #19
Та я уже второй инстаграм создаю))))) да все с удалением разобрался. А вот фото так и не могу настроить....
Наверное этот пример не подходит
0
Rube
911 / 559 / 88
Регистрация: 13.02.2014
Сообщений: 2,074
13.05.2015, 12:18 #20
Цитата Сообщение от Rube Посмотреть сообщение
File file = new File(Environment.getExternalStorageDirectory(), "test.jpg");
Это я так понимаю тестовый файл?
Так все таки алгоритм мне не ясен программы, зачем сохранять уже существующее изображение? Я понимаю, с инета качать и сохранять, но тут?
0
13.05.2015, 12:18
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
13.05.2015, 12:18

Создать базу данных с(Создание функции БД, Создание процедуры БД, Создание тригера БД)
В задание для курсовой работы по БД входят вот такие пункты: 1.2 Создание...

"Синхронизация" баз SQLite двух устройств
Добрый вечер, у меня такой вопрос к знатокам: возможно ли реализовать...

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


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru