NaviCat? - I don't use a DB GUI app, but IIRC, NaviCat is for MySQL? If so, you 
can just use MySQL ENUM type to constrain a field to specific set of values.

Definition:
        ENUM ('RED', 'YELLOW', 'BLUE')
        Field size is only 1 byte (when 255 or less enum values in the list)

EOModel Java Type:
        String

It will return a sql error if you try to set it to 'GREEN'

Regards, Kieran

(PS. Sending this on a plane, so who knows when this leaves my Outbox)

On Jun 3, 2011, at 7:13 PM, Ramsey Gurley wrote:

> 
> On Jun 3, 2011, at 3:53 PM, Chuck Hill wrote:
> 
>> On Jun 3, 2011, at 1:56 PM, Ramsey Gurley wrote:
>>> On Jun 3, 2011, at 1:20 PM, Chuck Hill wrote:
>>>> On Jun 3, 2011, at 1:17 PM, Kevin Hinkson wrote:
>>>>> On 3 Jun 2011, at 16:00, Chuck Hill wrote:
>>>>> 
>>>>>> There is no need for the first save.  Trust in EOF:
>>>>>> 
>>>>>>> EO1 -> init
>>>>>>> EO2 -> init
>>>>>>> -> add relationship to EO1
>>>>>>> -> save both.
>>>>> 
>>>>> I thought so, but when I had attempted it once before I got nothing. I 
>>>>> figured you were right so the caveat is: foreign keys must not be class 
>>>>> properties for this to work. Which makes perfect sense. Thanks again.
>>>> 
>>>> 
>>>> Correct.  You can expose the PK though that is commonly considered Bad 
>>>> Practice and Undesirable.  Exposing  the FK will cause problems for EOF -- 
>>>> just don't! :-)
>>>> 
>>>> Chuck
>>> 
>>> Okay, this is where Chuck tells me I'm a fool... (^_^)
>>> 
>>> I've recently decided that this is a good idea:
>>> 
>>> I can use wonder's javaEnum prototype to create an attribute on table A. To 
>>> ensure that attribute value is normalized in the database, I model that 
>>> attribute as the FK in a relationship to table B.
>> 
>> I don't see how that is normalizing anything.
> 
> 
> Well, it does keep all the values matching what is in table B. So if table B 
> has RED, YELLOW, BLUE, and someone decides they want to set the column to 
> GREEN, it should cry.
> 
> 
>>> Table B has only one column, the PK, which is the same javaEnum.  Now, on 
>>> table A, I expose the FK enum as a class property, but the relationship to 
>>> B is NOT a class property (^_^)  So, with this setup, EOF generates my FK 
>>> constraint to ensure normalized data on table A while making it remain by 
>>> all appearances as just an enum attribute.
>> 
>> Wouldn't a simple CHECK constraint be easier?  And more sensible?
> 
> 
> Didn't think about a check (^_^) Granted, this trick doesn't add a lot of 
> value from an EOF perspective.  But it does produce a helpful menu to select 
> the possible choices in navicat for those who are editing the database 
> manually... (>.<)  Maybe a check will give me the same benefit without the 
> extra table?
> 
> 
>>> I mention it, because these "clever" hacks of mine usually end up blowing 
>>> up in my face later on down the road.  (^_^)
>> 
>> It is your game, if you break it you get to keep all of the pieces.
>> 
>> 
>> Chuck
> 
> Hence why I posted.  Seems to work so far, but it goes against general WO 
> wisdom... which means it's most likely a bad idea (^_^)
> 
> Ramsey
> 
> _______________________________________________
> Do not post admin requests to the list. They will be ignored.
> Webobjects-dev mailing list      ([email protected])
> Help/Unsubscribe/Update your Subscription:
> http://lists.apple.com/mailman/options/webobjects-dev/kelleherk%40gmail.com
> 
> This email sent to [email protected]

 _______________________________________________
Do not post admin requests to the list. They will be ignored.
Webobjects-dev mailing list      ([email protected])
Help/Unsubscribe/Update your Subscription:
http://lists.apple.com/mailman/options/webobjects-dev/archive%40mail-archive.com

This email sent to [email protected]

Reply via email to