DaniWeb IT Discussion Community

DaniWeb IT Discussion Community (http://www.daniweb.com/forums/)
-   Database Design (http://www.daniweb.com/forums/forum142.html)
-   -   Normalizing "tables" (http://www.daniweb.com/forums/thread96852.html)

Subhobroto Nov 15th, 2007 8:13 am
Normalizing "tables"
 
Guys,

without saying anything much, I have such data at hand (rows from a database table):

111 | xyz | a, b, c

Following someone's wise words, I would love to have this transformed to :

        111 | xyz | a
        111 | xyz | b
        111 | xyz | c

DO NOT assume that there will be ONLY a single cell/column with multiple values.

The following might also arise :

        111 | xyz, def | a, b, c

This has to be transformed to :

        111 | xyz | a
        111 | xyz | b
        111 | xyz | c
        111 | def | a
        111 | def | b
        111 | def | c

C++ code or suggestions would be great.. although I am interested in knowing more about ;

1. Working implementations/snippets
2. Alternative but automated or programmatic approaches to get equivalent output.
3. Links to other resources where I might get more answers to this question.. for example any good database experts forums you guys might know/heard about.. visit etc...

I am really looking forward to some help on this because I thought up a recursive solution to this problem but I got stuck when I found out that I would have to know and predefine the table schema and model an object/class/structure on it.. that would make my program not applicable for any table, but rather I would have to redefine and recompile the classes for the table schema for every table.

I am sure there are easier ways out.

iamthwee Nov 16th, 2007 7:49 am
Re: Normalizing "tables"
 
Yeah it seems like you need some sort of generic way to set up an arbitary number of nested for loops. Perhaps recursion of some sort.

//111 | xyz, def | a, b, c

#include <iostream>
#include <string>

using namespace std;

int main()
{

  string array1[] = "111";
  string array2[] = {"xyz", "def"};
  string array3[] = {"a", "b", "c"};

  for ( int i = 0; i < 1; i++ )
  {
    for ( int j = 0; j < 2; j++ )
    {
      for ( int k = 0; k < 3; k++ )
      {
        cout << array1[i] << " " << array2[j] << " " << array3[k] << endl;
      }
    }
  }
  cin.get();
}

I think hard coding it would be the simplest solution.

debasisdas Nov 17th, 2007 6:34 am
Re: Normalizing "tables"
 
I don't think this question has anything to do with database designing.


All times are GMT -4. The time now is 3:46 am.

Forum system based on vBulletin Copyright ©2000 - 2008, Jelsoft Enterprises Ltd.
©2003 - 2008 DaniWeb® LLC