Фреймворк отдыха Django и ограничение Postgres SQL CHECK

Я знаю, что это старый вопрос, но я отправлю свой ответ для потомков ...

Это зависит от системы, которую вы строите, и от конкретных бизнес-правил.

Я создаю CRM с умеренным и крупным масштабом в MongoDb, C # (Backend API) и Angular (веб-приложение Frontend) и обнаружил, что ObjectId совершенно ужасен для использования в Angular Routing для выбора определенных объектов. То же самое с маршрутизацией API-контроллера.

Это предложение отлично работало для моего проекта.

db.contacts.insert({
 "id":db.contacts.find().Count()+1,
 "name":"John Doe",
 "emails":[
    "john@doe.com",
    "john.doe@business.com"
 ],
 "phone":"555111322",
 "status":"Active"
});

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

В моих бизнес-правилах указано, что из-за наших внутренних SLA нам не разрешено удалять корреспонденционные данные или записи клиентов дольше, чем потенциальная продолжительность работы приложения, которое я пишу, и поэтому я просто отмечаю записи с перечислением «Статус», которое либо «Активно», либо «Удалено». Вы можете удалить что-то из пользовательского интерфейса, и он скажет: «Контакт удален», но все приложение выполнило изменение статуса контакта на «Удалено», и когда приложение вызывает репозиторий для списка контактов, я фильтрую а затем удалите записи, прежде чем вставлять данные в клиентское приложение.

Поэтому db.collection.find (). Count () + 1 - идеальное решение для меня ...

Это не сработает для всех, но если вы не удалять данные, он отлично работает.

0
задан zoran 6 May 2019 в 19:50
поделиться