A single column doesn’t make sense to me. I’m not sure why the rows would be in the database if they don’t have a price.
In any event, an index on one VARCHAR column is going to have an infinitely large cardinality (estimated number of unique values) compared to a numeric column for the price and a boolean column for “unsuitable_for_children” which would have a cardinality of 2.
They are still two different things and neither of them means “no entry” - you’d need to define that separately either as a third field, a separate table or in the program logic.
Anyway, doesn’t the product still have a price even if it isn’t suitable for children (under what age?)
Perhaps two fields, one for price and one for minimum suitable age would be the most effective.
@rudy, why?
well, I considered the value to be an admission conditional which means the condition on which entrance is permitted is whatever that value may be. ‘unsuitable’ means no entry and 25.00 means you can come in. whilst one is numeric tha other is text but they sort of fell into the same category when I was thinking like that.