Как избежать повторения при вставке данных?

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

Однако если мы разрешим всем пользователям добавлять свои собственные категории, у нас могут возникнуть такие проблемы, как:

Пользователь А вставляет категорию под названием: Фрукты

Пользователь Б вставляет категорию под названием: Еда из деревьев

(это фиктивный пример, но, возможно, вы получите проблему).

Вообще говоря, какими способами мы должны избегать повторения в нашей системе?

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

Большое спасибо.

3 ответа

Решение

Не самое удобное решение, но вы можете добавить все новые записи в очередь, которую модерирует определенное количество пользователей. Только после утверждения новые записи появятся.

Если это как я понимаю:

Во-первых, рекомендуемое название категории, если пользователь запускает тип "fru", отображает существующий список названных "fruits" и т. Д.

Я использую псевдонимы, пример:

Категории таблицы:

id (serial)
name (varchar)
aliasof (bigint)

Из бэкэнда я перечисляю новые категории и, если существует, создаю отношение:

Supose:

1 fruits         0
2 fruits of tree 1

Иерархические категории, так что, когда эта ситуация встречается, она может быть обработана аккуратно. Затем, когда кто-то приходит и удаляет дочернюю категорию, элементы могут быть сброшены в родительскую категорию.

Другие вопросы по тегам