Re: Regarding Database Design

From: Tim X <timx_at_nospam.dev.null>
Date: Mon, 11 May 2009 18:21:43 +1000
Message-ID: <873abcdp7s.fsf_at_lion.rapttech.com.au>



DeB <debashish.majumdar_at_gmail.com> writes:

> Hi Faculties,
>
> Please accept my apologies if this query is out of context of the
> discussions in this forum.
>
> I've with me a proposed database design which is not normalized
> fully. There are some other tables that we plan to denormalize. The
> targeted database platform is Oracle Database 10g Release 2.
>

Why on erth do you want to de-normalise a db that is in a normalised form?

> For ex:- We have a table called user_groups which links the users
> and the groups table. But now we are thinking to eliminate this table
> and have a group_ids column storing comma separated values of groups
> ids from the groups table instead.
>

This sounds like a very bad idea to me. However, not really knowing exactly how you intend to use the data, I'm only guessing.

> The records will look like -
>
> groups
> ------
>
> group_id group_name
> 1 Admin
> 2 Operator
> 3 Power User
>
>
> users
> ------
>
> user_id user_name group_ids
> 1 User1 1,3
> 2 User2 2,3
>
>
> The targeted database will be a typical OLTP system. Please suggest
> if this approach to database design has any fundamental flaws.

Well, apart from basic relational database theory that recommends normalising rather than de-normalising your data, I'd ask

  1. How do you plan to enforce any referential integrity?
  2. How do you imagine using the data. For example, if you had the requirement to retrieve all users in group 2, how would you structure that query efficiently?
  3. Why do you believe this change will make things better than they currently are? Is there a real problem your trying to solve or is this just an imaginary issue?
  4. Depending on design, you may run into data conversion issues (assuming the original values are NUMBERs, your new design will need to convert to a character type, such as VARCHAR2.

From the little you have provided and not really knowing exactly how the data is used, its difficult to give a definit yes/no answer. However, I'd suspect that if your considering doing tis, then the data itself may not really be necessary at all - I mean, does having this data really provide you with anything - if not, rather than create a nightmare, get rid of the data or leave it in its normalised form.

Basically, sounds like madness to me.

You need to provide rationale as to why you think this is a good idea. From what you have provided, it seems to be at best pointless and at worst a very bad idea.

Tim

-- 
tcross (at) rapttech dot com dot au
Received on Mon May 11 2009 - 03:21:43 CDT

Original text of this message