Вариант 3
Таблица категорий
CategoryID, Category_Name и т.д ...
Таблица пользователей
ИД пользователя, имя_пользователя и т. Д.
Таблица пересечений USER_Category
ИД пользователя, ИД категории
Почему?
Если у вас есть
Имя пользователя, Имя категории
и сказать
«Джим», «Еда»
"Джо", "Еда"
"Джуди", "Косметика"
Если вы удалите «Джуди», поскольку вы больше не заинтересованы в ее сделках, вы также потеряете категорию «Косметические продукты». Таким образом, категории и пользователи разделены.
Также легче задавать вопросы типа «Кто тратит большую часть своих денег на еду». Если пользователь вводит категории в, вы можете получить «Еда», «Продовольственные товары», «Рестораны», и множество различных категорий, возможно, даже орфографические ошибки, такие как «fod», «fooooooooooooooooooood» и т. Д. Так что, объединив категории, которые вы можете просто выбрать на основе foodID в своих запросах.
По сути, теперь пользователь может просматривать список категорий, и если он обнаружит интересующую категорию из списка, он создаст запись UserID, CategoryID в таблице пересечений. Это снижает вероятность опечаток. Если категории нет, пользователь может добавить ее. Затем, когда следующий пользователь просматривает категории, он увидит новую запись, поэтому, если он заинтересован, он может просто щелкнуть по ней и уменьшить вероятность ее неправильного написания.