Access Query - сравнивает выбор нескольких пользователей друг с другом - PullRequest
1 голос
/ 18 февраля 2011

Я сталкиваюсь с концептуальной проблемой, которую, похоже, не могу решить в своем уме.

Допустим, я хочу, чтобы пользователь вводил то, что он в настоящее время носит, в базу данных через форму. Бросить «футболку» и «синий» в новый ряд невероятно легко. Однако, скажем, я хочу сравнить одних пользователей с другими и ранжировать их по порядку от наиболее похожих до наименьших.

Это становится огромным кошмаром, если учесть количество доступных вариантов.

  • Undershirt
  • Overshirt
  • Куртка
  • шарф / колье
  • Headwear
  • Брюки
  • белье
  • гетры
  • носки
  • Обувь
  • Аксессуары

На мой взгляд, я мог бы жестко кодировать в 11 категориях выше и позволить пользователю выбирать из выпадающих списков, адаптированных к каждой категории. Теперь давайте воспользуемся примером «майка» и «майка». В зависимости от человека, рубашка с длинными рукавами могла использоваться как; они все еще носят один. Если я заставлю пользователей размещать значения в категориях, пользователь А может поместить их в одну, а пользователь Б - в другую категорию. И их нельзя сравнивать из-за этого, отдельные категории.

Теперь вместо жесткого кодирования по категориям (и, следовательно, ограничения количества вводимых пользователем данных) я мог бы поместить каждый элемент в отдельную строку и выполнять поиск по идентификатору пользователя. Но скажем, человек одевается в шорты один день, а на следующий бросает джинсы и рубашку. Как я могу убедиться, что они сравниваются отдельно (например, платье по сравнению с шортами, платье по сравнению с джинсами + рубашка) и нет (платье по сравнению с шортами + джинсы + рубашка).

Что касается фактического сравнения, то каждый элемент может сравниваться между собой с помощью двумерной таблицы поиска. (Платье Row против джинсов Column даст ноль, Платье Row против платья Column 1)

Ответы [ 2 ]

1 голос
/ 18 февраля 2011

Подходящий дизайн для этого будет зависеть от допустимой погрешности. Если допустимая ошибка равна нулю, вы должны предоставить пользователям категории, в которых для каждого из них указывается истина / ложь, да / нет, или выбрать из ограниченного набора возможных ответов.

      HANDS:
             gloves
             mittens
             brass knuckles

             [Caveat: user could be wearing brass knuckles inside the mittens. You have to take into account
             whether values are mutually exclusive or not. Barefoot <> no socks.
              Someone who is barefoot is not wearing socks but someone not wearings socks may be wearing docksiders]


      FEET1: 
             anklet socks
             sheer stockings
             fishnet stockings
             ragg wool hiking socks
             kneesocks
             gym socks
             no socks


      FEET2: 
           mocassins
           running shoes
           sandals 
           wing-tips
           uggs
           spike heels               
           ...


      HEAD: 
            sombrero
            beret
            baseball hat
            pirate's hat
            beanie
            knitted cap

      NECK:
            scarf
            mock turtleneck aka dickie

и так далее и тому подобное.

Или, если предел погрешности очень велик, вы можете разрешить простой ввод текста произвольной формы и совпадение / частичное совпадение для слов. Чуть меньше ошибок: вы можете настроить таблицу синонимов и сопоставить их с синонимами предоставленных слов.

0 голосов
/ 18 февраля 2011

Как правило, разработайте правильную структуру базы данных и позаботьтесь о создании отчетов позже. Если это не просто упражнение на мысль, вы можете сказать, что вы на самом деле сравниваете, потому что с учетом вышесказанного человек вполне может сказать «смокинг» или «вечернее платье» и позволить вывести детали, тогда как в в какой-то другой области это может быть невозможно. Тем не менее, кажется, что вам потребуется минимум три столбца (поля) для каждого элемента:

Timestamp
Major category (jeans, trousers, skirt)
Item (Levi's, tweeds, mini)

Если точность особенно важна, вам понадобится обученный интервьюер:)

Я только что заметил нижнее белье в этом списке, которое еще сложнее, потому что то, что можно квалифицировать как полноценное нижнее белье для женщины определенного возраста, отнюдь не такое же, как у джентльмена из десяти лет.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...