I have a number of user ID’s. I am inserting these into a group table which will contain a column for the user’s ID and the group ID. This will allow me to use the query “SELECT user_id FROM groups WHERE group_id = ‘3’;” to retrieve user ID’s of all the members of group 3.
My problem is that I currently have a list of all users IDs, which I got from a form, using the statements :
int i = 0;
String[] names = { Request.Form["usernames"]Split(' ') }; //retrieving names from form
List<int> user_ids = new List<int>();
foreach(string name in names){
int user_id = db.QueryValue("SELECT user_id FROM users WHERE username = name");
user_ids.Add(user_id); //now I have a list of all user_ids
}
I now wish to insert this data into the groups table, where all of the user_id values in the list will have the same group_ID. How can I do this?
//create a group from users
"INSERT INTO group (group_id, user_id) VALUES(?,?);
What you are talking about is a many-many relationship. You already have a users table:
You need an additional table in the middle. The group table will just have something like:
You would then have a table in the middle. This table would look something like this:
You could still use your code to insert a user,
After this, you would insert a group:
Then you could retrieve the group id and use that to insert into user_groups
Also, the table structure should include primary keys and foreign keys (much like @sixlettervariables’ answer)