Lets say i got a enum table like this:
id name desc
0 Normal Normal shipping
1 Fragile Fragile, handle with care
and i got some business rule on an order
double ShippingPrice(Product p)
{
if (p.ShippingType == 1) // Fragile
return GetFragileShippingPrice(p);
else
return GetNormalShippingPrice(p);
}
Maybe not the best example. But the point is, how do you make the "p.ShippingType == 1" part readable. When the next person comes along to maintain this code, he has to find the production database, and query tables for every business rule to understand what they do.
I've considerd just creating an enum in code just do duplicate the data in the database, but that don't seem like a good solution either.