хранение гитарных аккордов в базе данных

В настоящее время я учусь в колледже, и для своего личного проекта я собираюсь создать приложение для выбора гитарных аккордов, в котором аккорды будут сохранены в базе данных (я бы использовал Oracle Database 11g Express Edition). Пользователь может ввести название аккорда или ноты, связанные с этим аккордом, и он отобразит изображение аккорда, чтобы дать визуальное представление о нем. Я застрял в том, как аккорды будут храниться в базе данных. Нужна ли мне одна таблица для семейства аккордов (A, C, D, G и т. д.), одна таблица для отдельных нот, которые использует аккорд, и еще одна таблица для всех нот на грифе? любая помощь для этого будет принята с благодарностью.

Мое приложение будет разработано в Android Studio. Когда я создаю базу данных, как это будет связано с моим приложением?

Спасибо.


person Nathan Jackson    schedule 16.03.2017    source источник
comment
Насколько я знаю, если вы хотите создать приложение для Android, уже есть SQLite, который вы можете использовать. Поскольку приложения для Android должны быть легкими, учитывая тот факт, что они обычно устанавливаются на портативные устройства, использование Ora DB здесь бесполезно. Или, если это java-приложение, которое вы хотите разработать, вы можете использовать JDBC/или ORM-фреймворк, например Hibernate/iBatis, для получения подключения к указанной базе данных.   -  person robot_alien    schedule 16.03.2017
comment
Что касается вашего запроса, вы можете связать некоторый уникальный идентификатор/имя с каждым аккордом и сохранить их в таблице CHORD_T, а затем, когда вы получите информацию об этом аккорде из базы данных, вы получите его идентификатор, теперь найдите связанное изображение с соответствующим идентификатором и отображение его в графическом интерфейсе. Ноты, находящиеся на доске ладов, можно рассматривать как шаблоны.   -  person robot_alien    schedule 16.03.2017
comment
Ну, моя первоначальная идея состояла в том, чтобы использовать SQLite, но я никогда не использовал его раньше и подумал, что, возможно, проще использовать БД Oracle. SQLite работает так же? Как бы мне вставить в него много данных, через интерфейс Android Studio?   -  person Nathan Jackson    schedule 16.03.2017
comment
Существуют такие инструменты, как средства просмотра БД, которые помогают вам, предоставляя пользовательский интерфейс, в котором вы можете создавать базу данных, создавать таблицы, просматривать данные в них и выполнять всевозможные операции, даже без необходимости запускать запрос. Пример: sqlitebrowser.org   -  person robot_alien    schedule 16.03.2017


Ответы (1)


Я бы сделал это так:

Таблица 1 с порядком полутонов, сопоставленным с нотами:

0 -> C
1 -> C#
2 -> D 
3 -> D#
4 -> E
5 -> F
6 -> F#
etc.

Таблица 2 с названием аккорда, сопоставленным интервалам в несколько полутонов:

Major -> 0
Major -> 4
Major -> 8
Minor -> 0
Minor -> 3
Minor -> 8
etc

Теперь у вас есть все необходимое для построения и определения аккордов.

Пример: найти ноты ре мажор

1) Найдите индекс D для начала в таблице 1, то есть 2

2) Найдите в таблице 2 все интервалы от мажорной струны, то есть 0, 4 и 8.

3) Найдите примечания в таблице 1, добавив интервалы, найденные в таблице 2, к начальному указателю.

Нравится:

2 + 0 = 2 => D,
2 + 4 = 6 => F#,
2 + 8 = 10 => A

Когда результат сложения 3 больше 11, вам нужно вычесть 12, чтобы получить правильную ноту на одну октаву выше. Если у вас есть шнуры, охватывающие более октавы, вам нужно либо иметь две октавы в таблице 1, либо вычесть 24 для чисел больше 23.

Это не относится к тому, когда использовать # или b для полутонов.

Если вам нужно визуально сконструировать, куда ставить пальцы на грифе, вместо одной октавы нот в Таблице 1 сохраните все ноты на ладовой доске, а в Таблице 2 сохраните все индексы для всех ладов на шести струнах. держать. В этом случае вам потребуются разные идентификаторы шнуров для всех шнуров, например, ля-мажор, ля-мажор и т. д.

person Markus Nilsson    schedule 16.03.2017