Задавайте вопросы, мы ответим
Вы не зашли.
Здравствуйте. Мне нужно спроектировать базу данных так, чтобы одном запросе я могу сразу все данные получить. Запрос такой, что я ввожу текст, получить должен список пословиц, их аналогов и их описание.
У меня есть список русских пословиц и список других (английских, и т.д.).
Русская пословица имееет несколько аналогов (может иметь несоклько английских, а также русских аналогов и т.д.). Также есть общее описание (когда употребляется), оно относится к какому-то множеству пословиц (т.е. 4 пословицы, эквиваленты , аналоги , будут иметь 1 описание)
Т.е. пользователь ищет пословицу русскую: "блаблаблабла", а я в базе данных должны поискать все аналоги и выдать результат:
Искомый вариант: "блаблаблабла".
Английские аналоги:
"blablablablabla"
"WTF"
"It's a piece of shit"
Когда употребляется:
"Когда лень придумать пример, то мы пишем полнейший бред"
Я создал 3 таблицы.
1-ая:
uid(int), proverbText(varchar); PK = uid
2-ая:
uid(int), description(TEXT); PK = uid
3-ая:
id(int), rusAnalogvarchar(255), OtherAnalog(varchar(255)), description(int)
3-ая таблциа - это связка между 3 таблицами.
Т.е. сначала я ищу текст в 1-ой таблице(1), затем по найденным id я ищу в таблице аналогов описание, нахожу описание по id в 2 таблице(*), затем мне нужно найти аналоги списка таблиц из 1-го подзапроса.
Я почти седал заспрос, до *, но уменя уже запрос в 6 строчек. Можно спроектировать так, чтобы запросы были меньше? Я просто уже себе мозг взорвал, да и преподаватель сказал: "it's a bullshit", также добавил, что это не будет проверять.
Неактивен