Насколько я понимаю DDD, объекты-ценности - это просто способ разделения ваших сущностей. Если объект значения должен храниться с идентификатором в базе данных, это не объект значения.
Пример:
Модель предметной области выглядит следующим образом (C #):
public class Customer : Entity
{
public Guid CustomerID { get; }
public string LastName { get; set; }
public Address HomeAddress { get; set; }
}
public class Address : ValueObject
{
public string Street { get; set; }
public string City { get; set; }
public string ZipCode { get; set; }
}
Соответствующая таблица базы данных будет выглядеть примерно так (псевдо-SQL):
CREATE TABLE Customers
(
CustomerID,
LastName,
HomeAddress_Street,
HomeAddress_City,
HomeAddress_ZipCode,
)
Чтобы сохранить адреса в отдельной таблице, вы должны сделать ее сущностью с идентификатором.