Как избежать повторения при вставке данных?
Я хочу разрешить всем пользователям приложения добавлять свои категории для своих продуктов. Продукты могут отличаться много, поэтому я не могу предсказать и вставить себя ранее.
Однако если мы разрешим всем пользователям добавлять свои собственные категории, у нас могут возникнуть такие проблемы, как:
Пользователь А вставляет категорию под названием: Фрукты
Пользователь Б вставляет категорию под названием: Еда из деревьев
(это фиктивный пример, но, возможно, вы получите проблему).
Вообще говоря, какими способами мы должны избегать повторения в нашей системе?
Я совершенно не знаю, какие у нас могут быть способы, поэтому некоторые ресурсы, ссылки и прочее приветствуются.
Большое спасибо.
3 ответа
Не самое удобное решение, но вы можете добавить все новые записи в очередь, которую модерирует определенное количество пользователей. Только после утверждения новые записи появятся.
Если это как я понимаю:
Во-первых, рекомендуемое название категории, если пользователь запускает тип "fru", отображает существующий список названных "fruits" и т. Д.
Я использую псевдонимы, пример:
Категории таблицы:
id (serial)
name (varchar)
aliasof (bigint)
Из бэкэнда я перечисляю новые категории и, если существует, создаю отношение:
Supose:
1 fruits 0
2 fruits of tree 1
Иерархические категории, так что, когда эта ситуация встречается, она может быть обработана аккуратно. Затем, когда кто-то приходит и удаляет дочернюю категорию, элементы могут быть сброшены в родительскую категорию.