If ur storing "ALPHANUMERIC" values, then use varchar instead of TEXT

On 7/11/08, Waynn Lue <[EMAIL PROTECTED]> wrote:
>
>
>
> On Mon, Jul 7, 2008 at 4:20 AM, Ananda Kumar <[EMAIL PROTECTED]> wrote:
>
>> Yes, i definitly agree on the third table if "APPLICATION FUNCTIONALITY"
>> increase and need to add more columns into the current tables.
>>
>> On 7/7/08, metastable <[EMAIL PROTECTED]> wrote:
>>>
>>> Ananda Kumar wrote:
>>>
>>>> I feel creating the third table would just be duplicating the data and
>>>> occupying space. Creating index on existing table and quering would be
>>>> better. But you got a good point of FOREIGN KEY CONSTRAINT. Can we use
>>>> this
>>>> constraint on current "SETTINGS" table, rather than creating the third
>>>> table.
>>>>
>>> [snip]
>>>
>>>
>>>
>>> On the contrary, using the third table would eliminate all data
>>> duplication, thus safeguarding data integrity and making maintenance easier
>>> (think 'I want to change this setting description or make it a boolean in
>>> stead of a text setting').  It will also use less space because of the
>>> previous.
>>>
>>> Ofcourse, I don't see any settings description or setting types
>>> limitations in your schema as it is now.
>>> If that isn't an objection, you could create the foreign key constraint
>>> on the existing table as such:
>>>
>>> ALTER TABLE Settings ADD UNIQUE KEY (applicationID)
>>> ALTER TABLE Settings ADD FOREIGN KEY (applicationID) REFERENCES
>>> Applications(applicationID) ON UDPATE CASCADE ON DELETE SET NULL
>>>
>>> (from the top of my head, something like this)
>>> This implies that you are using InnoDB tables !
>>>
>>> I would however still create the third table. It will make your life much
>>> easier when at some time in the future you decide to expand the
>>> functionality and do indeed include limitations on the settings ('must be
>>> boolean', 'must be any of green,red,blue', ...), to allow for validation and
>>> such.
>>>
>>>
>>> HTH
>>>
>>> Stijn
>>>
>>>
>>
>>
> Well, the other thing I'm somewhat concerned about is that the column type
> is TEXT.  For some of the things I'm indexing, it's an INT, but I had to
> create SettingValue as TEXT so that we could store text in it as well.  It
> seems like a waste to index on text when the underlying value is really a
> number.
>
> Waynn
>

Reply via email to