SQLinfo.ru - Все о MySQL

Форум пользователей MySQL

Задавайте вопросы, мы ответим

Вы не зашли.

#1 21.05.2010 00:10:43

FiMko
Активист
Откуда: Санкт-Петербург
Зарегистрирован: 18.09.2009
Сообщений: 198

Подскажите по оптимизации структуры таблицы "Словарь"

Всем привет!

Я использую вот такую модель структуры базы данных для словаря:

http://www.databaseanswers.org/data_models/dictionaries_for_foreign_languages/images/dictionaries_for_foreign_languages_dezign.gif

Не нравится таблица Dictionary Entries: при добавлении "test" (id=1) > "тест" (id=2) в таблицу Dictionary Entries будут добавлены записи
/* пара 1 */
word_from_id: 1
word_to_id: 2
/* пара 2 */
word_from_id: 2
word_to_id: 1

По-моему неприятное дублирование данных, ведь первая пара word_from_id, word_to_id фактически вторая пара наоборот. Но не нахожу никакого оптимального решения, как изменить структуру таблиц, чтобы избежать подобной избыточности (дублирование в два раза по идее можно сократить).

Очень был бы признателен за любые предложения! Заранее спасибо!

Отредактированно FiMko (21.05.2010 11:08:50)

Неактивен

 

#2 21.05.2010 15:54:21

paulus
Администратор
MySQL Authorized Developer and DBA
Зарегистрирован: 22.01.2007
Сообщений: 6757

Re: Подскажите по оптимизации структуры таблицы "Словарь"

Это все потому, что вы разбили одно смысловое на два. Слова — это как раз
элементы словаря wink

words (word_id, language_id, data, …, PK (word_id, language_id));

Одинаковые слова имеют одинаковый word_id (но разные language_id).

Неактивен

 

Board footer

Работает на PunBB
© Copyright 2002–2008 Rickard Andersson