Конференция "Базы" » Фильтрация ненужного в базе [D7]
 
  • brui (31.03.14 18:41) [0]
    Есть база данных с блюдами. На сколько я понимаю код ниже будет выводить записи, в которых есть текст введенный в Edit1.

    ADOQuery1.Filtered:=false;
    ADOQuery1.Filter:='Ингредиенты LIKE ' + #39 + '%' + Edit1.Text + '%' + #39;
    ADOQuery1.Filtered:=true;



    Нужно сделать наоборот: допустим я ввожу в Edit1 "чеснок" и из списка отображения убираются все блюда содержащие "чеснок", остаются те, где нет чеснока. Каким способом это сделать? Есть какой-нибудь запрос или еще что-нибудь?
  • RWolf © (31.03.14 18:56) [1]
    NOT LIKE.
  • Кщд (31.03.14 19:00) [2]
  • Inovet © (31.03.14 19:10) [3]
    Чесночный соус останется.
  • clickmaker © (31.03.14 19:35) [4]
    full-text search + морфология.
    Либо нормализовать базу до уровня ингредиентов)
  • Труп Васи Доброго © (01.04.14 09:22) [5]

    > Либо нормализовать базу

    Что значит "либо"?!?!? Да с этого начинать надо! Он должен ночью ворочаться и просыпаться от кошмаров, если база минимум до второго уровня не нормализована.
  • Кщд (01.04.14 12:17) [6]
    >clickmaker ©   (31.03.14 19:35) [4]
    Вы серьезно?)
    full text search для лабораторки?))
  • megavoid © (01.04.14 13:16) [7]
    Fulltext, нормализация, давайте ещё поиздеваемся )))
    Вон, [1] - 'Ингредиенты NOT LIKE ' ... и для лабы хватит. Только это, конечно, знак % в начале аргумента лайка не айс, индекс убивает, в продакшен такое низзя :)
  • Труп Васи Доброго © (02.04.14 08:38) [8]

    > full text search для лабораторки?


    > для лабы хватит


    А где сказано что это лабораторка? Может человек супермегагиперкулинарную базу делает. Только подход крайне неверный. Если вся "база" заключается лишь в одной таблице с единственным полем Recept, то это хрень полная, а не база. Ведь кухарка может в рецепте указать "ни в коем случае не кладите чеснок!" и всё, тупая фильтрация по тексту NOT LIKE %чеснок% выкинет из списка прекрасное бесчесночное блюдо.
    Надо хотя бы создать отдельную нумерованную таблицу ингредиентов и в таблице с рецептом иметь ссылку на другую таблицу с набором ингредиентов и их количеством, тогда независимо от писанины ты сможешь точно выбрать все блюда, где отсутствует чеснок и даже сможешь выбирать блюда по количеству этого самого чеснока, например всё, где чеснока меньше 20 грамм. А если добавишь таблицу способов обработки, то можно будет выбирать даже блюда, где этот самый чеснок не только меньше 20 грамм, но ещё и давленый, а не резаный.
 
Конференция "Базы" » Фильтрация ненужного в базе [D7]
Есть новые Нет новых   [118624   +10][b:0][p:0.001]