Форум программистов, компьютерный форум, киберфорум
Java: Базы данных
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.63/8: Рейтинг темы: голосов - 8, средняя оценка - 4.63
 Аватар для Goongala
1022 / 562 / 185
Регистрация: 18.08.2013
Сообщений: 2,027
Записей в блоге: 2

База данных для некоего подобия словаря

11.04.2019, 19:57. Показов 1623. Ответов 8
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Приветствую. В общем-то, я пытаюсь написать программу для повторения слов. Я не собираюсь пихать в программу готовый словарь, а просто сделать возможность самостоятельно добавлять слова и впоследствии как раз таки их повторять, но я не могу сообразить как лучше хранить данные. Изначально я просто выводил их в обычный txt файл и программа при запуске каждый раз считывала все слова оттуда и загоняла в массив, но я решил, что это не самый эффективный способ и решил обратиться к базам данных, но с ними я совершенно не знаком и поэтому есть шанс, что я опять всё сделаю криво.

Собсна, в чём заключается вопрос: у каждого слова может быть несколько переводов, но в поле одной таблицы, насколько я понимаю, нельзя занести нечто вроде массива объектов, а мне необходима возможность обращаться к каждому переводу конкретного слова в отдельности. Я решил сделать две таблицы: в первой будет английского слово и его ID, во второй ID и перевод, т.е. если несколько вариантов перевода относятся к одному слову, то они будут заносится в БД с одинаковым ID. Так вот, является ли подобный подход достаточно эффективным или это можно сделать как-то по-умнее? Есть ли вообще смысл добавлять базу данных в программу? Я пишу её по большей части для личного использования и мой личный словарь будет состоять минимум из 2.000 слов, и мне кажется, что каждый раз считывать такое количество данных из файла не очень эффективно
0
Лучшие ответы (1)
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
11.04.2019, 19:57
Ответы с готовыми решениями:

Есть ли библиотека или база данных словаря по русскому языку?
Я собираюсь делать генератор кроссвордов, только писать в ручную слова и вопрос слишком долго. Хочется, чтобы кроссворд генерировался...

Нужна программа для некоего конекта двух телефонов
незнаю даже с чего начать... есть такая штука ROMO ROBOT, вот она http://romotive.com/meetromo/apps и вот...

Построить турнирную сетку для n пар участников некоего соревнования
Добрый день! Задача такая. Нужно построить турнирную сетку для n пар участников некоего соревнования. Для этого есть UserControl...

8
Эксперт функциональных языков программированияЭксперт Java
 Аватар для korvin_
4575 / 2774 / 491
Регистрация: 28.04.2012
Сообщений: 8,779
11.04.2019, 20:13
Цитата Сообщение от Gungala Посмотреть сообщение
но я решил, что это не самый эффективный способ
С чего ты так решил?

Добавлено через 46 секунд
Цитата Сообщение от Gungala Посмотреть сообщение
и мне кажется, что каждый раз считывать такое количество данных из файла не очень эффективно
Если кажется, то это к психоаналитику. Или к батюшке. На твой вкус.
0
 Аватар для Goongala
1022 / 562 / 185
Регистрация: 18.08.2013
Сообщений: 2,027
Записей в блоге: 2
11.04.2019, 20:42  [ТС]
Цитата Сообщение от korvin_ Посмотреть сообщение
Если кажется, то это к психоаналитику. Или к батюшке. На твой вкус.
Ладно, мне было больно. Но ответ не очень-то конструктивный.

Я решил, что это не эффективно потому, что каждый раз в любом случае придётся полностью считывать файл, а база данных, насколько я знаю (я знаю очень мало) работает иначе. Мол, я посылаю ей запрос, там осуществляется какой-нибудь супер-эффективный поиск и затем возвращается значение. Полагаю, всё не так шоколадно, как я себе представлял?
0
Эксперт PythonЭксперт Java
19530 / 11067 / 2931
Регистрация: 21.10.2017
Сообщений: 23,294
11.04.2019, 20:53
Лучший ответ Сообщение было отмечено Gungala как решение

Решение

Цитата Сообщение от Gungala Посмотреть сообщение
всё не так шоколадно, как я себе представлял?
Ну почему же. Для твоих целей прекрасно подойдет какая-нибудь легенькая бд, SQLite например.
Цитата Сообщение от Gungala Посмотреть сообщение
в поле одной таблицы, насколько я понимаю, нельзя занести нечто вроде массива объектов
Почитай про отношения One-to-Many
1
Эксперт функциональных языков программированияЭксперт Java
 Аватар для korvin_
4575 / 2774 / 491
Регистрация: 28.04.2012
Сообщений: 8,779
11.04.2019, 21:02
Цитата Сообщение от Gungala Посмотреть сообщение
Полагаю, всё не так шоколадно, как я себе представлял?
Ты что, собираешься разворачивать БД ради 2к слов? Ты время чтения твоего файлика замерял?

Цитата Сообщение от iSmokeJC Посмотреть сообщение
Почитай про отношения One-to-Many
Тут нафик не нужно ни one-to-many, ни что-то ещё. Обычный key-value, где value — массив.

Добавлено через 1 минуту
Цитата Сообщение от iSmokeJC Посмотреть сообщение
SQLite
Но зачем?
1
Эксперт PythonЭксперт Java
19530 / 11067 / 2931
Регистрация: 21.10.2017
Сообщений: 23,294
11.04.2019, 21:04
Цитата Сообщение от korvin_ Посмотреть сообщение
Но зачем?
Ну хочется человеку БД, ну что ты!
0
 Аватар для Goongala
1022 / 562 / 185
Регистрация: 18.08.2013
Сообщений: 2,027
Записей в блоге: 2
11.04.2019, 21:10  [ТС]
Попробую сделать бд, но только для практики. В программе оставлю сохранение в обычный файл. Спасибо за ответы
0
Эксперт функциональных языков программированияЭксперт Java
 Аватар для korvin_
4575 / 2774 / 491
Регистрация: 28.04.2012
Сообщений: 8,779
12.04.2019, 08:08
https://jankotek.gitbooks.io/m... ick-start/
2
12.04.2019, 08:16

Не по теме:

korvin_, прикольно, интересное решение!

0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
12.04.2019, 08:16
Помогаю со студенческими работами здесь

Требуется написать программу-контроллер для некоего USB-устройства
Проблема заключается в следующем как работать с этим usb устройством как его добавить в программу как посылать на него данные, ну вообщем...

как написать функцию для подобия трапеций ?
было вот так, но это не совсем верно. bool Trapezoid::similarity(Trapezoid const& tr){ double coef1, coef2, coef3, coef4; coef1...

База данных для телефонной станции ( С условием сортировки данных )
Здравствуйте! Нужно создать программку на Delphi "База данных для телефонной станции ( С условием сортировки данных )" Также большая...

База данных, основанная на службах vs База данных SQL Server
Доброго времени суток. Делал я, значит, Data Access Layer для ASP.NET MVC проекта. Создал обычную библиотеку классов, моделей туда...

Как правильно спроектировать база данных для Учет товаров для маленький фирмы
Привет всем.. Мне надо создать простую базу что пользователью было легко работать как в эксель но через сеть Из сети нашел Excel файл...


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

Или воспользуйтесь поиском по форуму:
9
Ответ Создать тему
Новые блоги и статьи
Символьное дифференцирование
igorrr37 13.02.2026
/ * Логарифм записывается как: (x-2)log(x^2+2) - означает логарифм (x^2+2) по основанию (x-2). Унарный минус обозначается как ! */ #include <iostream> #include <stack> #include <cctype>. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL3_image
8Observer8 10.02.2026
Содержание блога Библиотека SDL3_image содержит инструменты для расширенной работы с изображениями. Пошагово создадим проект для загрузки изображения формата PNG с альфа-каналом (с прозрачным. . .
Установка Qt-версии Lazarus IDE в Debian Trixie Xfce
volvo 10.02.2026
В общем, достали меня глюки IDE Лазаруса, собранной с использованием набора виджетов Gtk2 (конкретно: если набирать текст в редакторе и вызвать подсказку через Ctrl+Space, то после закрытия окошка. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru