class Customer
{
public int Id { get; set; }
}
class Sale
{
public int Id { get; set; }
public int CustomerId { get; set; }
}
class SaleService
{
public void NewSale(Sale sale)
{
//Should i validate if Customer exists by sale.CustomerId before call save?
saleRepository.InsertOrUpdate(sale);
}
}
Я использую конструкцию и структуру сущностей, управляемую доменами. Должен ли я проверять, существует ли клиент, продавая его. Клиент раньше, чем позвонить?Должен ли я проверить, существует ли связанная сущность перед вставкой?
Что относительно распределенных систем? – plalx
@plalx: что вы имеете в виду распределенные системы: распределенные базы данных или распределенные серверы приложений? В случае распределенных серверов приложений не должно быть никакой разницы, потому что запрос от каждого сервера не должен отличаться от точки зрения сервера db –
Представьте, что Пользователь делает продажу и выбранного клиента. Другой пользователь удалил клиента, выбранного первым пользователем. Когда первый пользователь пытается сохранить, генерируется ошибка внешнего ключа. Думая об этом, чтобы свести к минимуму случаи, я думал, что добавлю «удаленный» столбец вместо удаления записей. Это будет подходящая практика? Побочным эффектом является то, что мне пришлось бы создавать отфильтрованные индексы к уникальным столбцам. –