what is the best way to store Numbers of a Bingo Card in database table [closed]
up vote
-3
down vote
favorite
I wanna create a web-based bingo game using MVC and EF, I want to store 24 numbers for each card in the database table as a record,I'm not sure how to create my Bingo cards table,one way that comes to my mind is design a table with 24 integer field for each cell's number this way when I fetch the record in business logic I can't traverse the numbers because they are in the separate fields(actually I can but I think this way is not the right way to do)the other way is I concatenate all numbers together and separate it with comma and store it as a string so when I fetch the record I can split the string of comma and have all numbers in an array or something
so what is the best solution for this situation ?
how can I design my table for storing numbers of a bingo card ?
c# sql entity-framework relational-database
closed as primarily opinion-based by DavidG, T.S., Graham, Shiladitya, Matthew L Daniel Nov 11 at 4:53
Many good questions generate some degree of opinion based on expert experience, but answers to this question will tend to be almost entirely based on opinions, rather than facts, references, or specific expertise. If this question can be reworded to fit the rules in the help center, please edit the question.
add a comment |
up vote
-3
down vote
favorite
I wanna create a web-based bingo game using MVC and EF, I want to store 24 numbers for each card in the database table as a record,I'm not sure how to create my Bingo cards table,one way that comes to my mind is design a table with 24 integer field for each cell's number this way when I fetch the record in business logic I can't traverse the numbers because they are in the separate fields(actually I can but I think this way is not the right way to do)the other way is I concatenate all numbers together and separate it with comma and store it as a string so when I fetch the record I can split the string of comma and have all numbers in an array or something
so what is the best solution for this situation ?
how can I design my table for storing numbers of a bingo card ?
c# sql entity-framework relational-database
closed as primarily opinion-based by DavidG, T.S., Graham, Shiladitya, Matthew L Daniel Nov 11 at 4:53
Many good questions generate some degree of opinion based on expert experience, but answers to this question will tend to be almost entirely based on opinions, rather than facts, references, or specific expertise. If this question can be reworded to fit the rules in the help center, please edit the question.
Welcome to StackOverflow. Please read the help section on how to ask and then edit your question, as this will help the community better understand your specific issue and provide you with a good answer: stackoverflow.com/help/how-to-ask
– Graham
Nov 11 at 3:45
add a comment |
up vote
-3
down vote
favorite
up vote
-3
down vote
favorite
I wanna create a web-based bingo game using MVC and EF, I want to store 24 numbers for each card in the database table as a record,I'm not sure how to create my Bingo cards table,one way that comes to my mind is design a table with 24 integer field for each cell's number this way when I fetch the record in business logic I can't traverse the numbers because they are in the separate fields(actually I can but I think this way is not the right way to do)the other way is I concatenate all numbers together and separate it with comma and store it as a string so when I fetch the record I can split the string of comma and have all numbers in an array or something
so what is the best solution for this situation ?
how can I design my table for storing numbers of a bingo card ?
c# sql entity-framework relational-database
I wanna create a web-based bingo game using MVC and EF, I want to store 24 numbers for each card in the database table as a record,I'm not sure how to create my Bingo cards table,one way that comes to my mind is design a table with 24 integer field for each cell's number this way when I fetch the record in business logic I can't traverse the numbers because they are in the separate fields(actually I can but I think this way is not the right way to do)the other way is I concatenate all numbers together and separate it with comma and store it as a string so when I fetch the record I can split the string of comma and have all numbers in an array or something
so what is the best solution for this situation ?
how can I design my table for storing numbers of a bingo card ?
c# sql entity-framework relational-database
c# sql entity-framework relational-database
asked Nov 11 at 2:37
Mohammad
33
33
closed as primarily opinion-based by DavidG, T.S., Graham, Shiladitya, Matthew L Daniel Nov 11 at 4:53
Many good questions generate some degree of opinion based on expert experience, but answers to this question will tend to be almost entirely based on opinions, rather than facts, references, or specific expertise. If this question can be reworded to fit the rules in the help center, please edit the question.
closed as primarily opinion-based by DavidG, T.S., Graham, Shiladitya, Matthew L Daniel Nov 11 at 4:53
Many good questions generate some degree of opinion based on expert experience, but answers to this question will tend to be almost entirely based on opinions, rather than facts, references, or specific expertise. If this question can be reworded to fit the rules in the help center, please edit the question.
Welcome to StackOverflow. Please read the help section on how to ask and then edit your question, as this will help the community better understand your specific issue and provide you with a good answer: stackoverflow.com/help/how-to-ask
– Graham
Nov 11 at 3:45
add a comment |
Welcome to StackOverflow. Please read the help section on how to ask and then edit your question, as this will help the community better understand your specific issue and provide you with a good answer: stackoverflow.com/help/how-to-ask
– Graham
Nov 11 at 3:45
Welcome to StackOverflow. Please read the help section on how to ask and then edit your question, as this will help the community better understand your specific issue and provide you with a good answer: stackoverflow.com/help/how-to-ask
– Graham
Nov 11 at 3:45
Welcome to StackOverflow. Please read the help section on how to ask and then edit your question, as this will help the community better understand your specific issue and provide you with a good answer: stackoverflow.com/help/how-to-ask
– Graham
Nov 11 at 3:45
add a comment |
1 Answer
1
active
oldest
votes
up vote
0
down vote
accepted
Good question!
You're right, storing it in 24 different integer fields is definitely a bad way to go. Concatenating them with commas might seem like a reasonable compromise, but it's inflexible, as you're treating them as text, not integers, so later on if you wanted to run queries such as SELECT MAX(CardNumber) FROM BingoCardNumbers WHERE CardID = 1
you couldn't do anything like that.
My suggestion would be to have two different tables, BingoCards
and BingoCardNumbers
. The BingoCards
table would have a CardID
, as well as other information relevant to the card, such as who the card belongs to, so maybe you'd want a UserID
column in there too. No card numbers are stored in this table.
Then, in the BingoCardNumbers
table, that would have three columns, CardID
, which is the primary key from the first table, NumberIndex
(1-24, which is the index of the number in the card), and finally CardNumber
, which is the actual number itself. Then, if you want to get all the numbers for a particular card, you can simply do:
SELECT CardNumber FROM BingoCardNumbers WHERE CardID = 1 ORDER BY NumberIndex
1
Usually we wouldn't answer a question like this as it is opinion based.
– DavidG
Nov 11 at 2:58
1
While it's true that it's opinion based, almost any DBA is going to say that storing it in 24 fields is not a good idea at all, so I'm trying to show a better way, as well as my thinking behind doing it a different way. By all means, other people should add other answers, but I think this is a pretty good "normalized" way of doing it.
– Sam Leatherdale
Nov 11 at 3:06
1
@Mohammad Many good questions generate some degree of opinion based on expert experience, but answers to this question will tend to be almost entirely based on opinions, rather than facts, references, or specific expertise
– DavidG
Nov 11 at 3:06
1
@Mohammad That's just how this site works, we don't like questions that have opinionated answers.
– DavidG
Nov 11 at 3:12
1
@Mohammad Nobody is saying your question is bad, just that you're better asking it somewhere else.
– DavidG
Nov 11 at 3:28
|
show 8 more comments
1 Answer
1
active
oldest
votes
1 Answer
1
active
oldest
votes
active
oldest
votes
active
oldest
votes
up vote
0
down vote
accepted
Good question!
You're right, storing it in 24 different integer fields is definitely a bad way to go. Concatenating them with commas might seem like a reasonable compromise, but it's inflexible, as you're treating them as text, not integers, so later on if you wanted to run queries such as SELECT MAX(CardNumber) FROM BingoCardNumbers WHERE CardID = 1
you couldn't do anything like that.
My suggestion would be to have two different tables, BingoCards
and BingoCardNumbers
. The BingoCards
table would have a CardID
, as well as other information relevant to the card, such as who the card belongs to, so maybe you'd want a UserID
column in there too. No card numbers are stored in this table.
Then, in the BingoCardNumbers
table, that would have three columns, CardID
, which is the primary key from the first table, NumberIndex
(1-24, which is the index of the number in the card), and finally CardNumber
, which is the actual number itself. Then, if you want to get all the numbers for a particular card, you can simply do:
SELECT CardNumber FROM BingoCardNumbers WHERE CardID = 1 ORDER BY NumberIndex
1
Usually we wouldn't answer a question like this as it is opinion based.
– DavidG
Nov 11 at 2:58
1
While it's true that it's opinion based, almost any DBA is going to say that storing it in 24 fields is not a good idea at all, so I'm trying to show a better way, as well as my thinking behind doing it a different way. By all means, other people should add other answers, but I think this is a pretty good "normalized" way of doing it.
– Sam Leatherdale
Nov 11 at 3:06
1
@Mohammad Many good questions generate some degree of opinion based on expert experience, but answers to this question will tend to be almost entirely based on opinions, rather than facts, references, or specific expertise
– DavidG
Nov 11 at 3:06
1
@Mohammad That's just how this site works, we don't like questions that have opinionated answers.
– DavidG
Nov 11 at 3:12
1
@Mohammad Nobody is saying your question is bad, just that you're better asking it somewhere else.
– DavidG
Nov 11 at 3:28
|
show 8 more comments
up vote
0
down vote
accepted
Good question!
You're right, storing it in 24 different integer fields is definitely a bad way to go. Concatenating them with commas might seem like a reasonable compromise, but it's inflexible, as you're treating them as text, not integers, so later on if you wanted to run queries such as SELECT MAX(CardNumber) FROM BingoCardNumbers WHERE CardID = 1
you couldn't do anything like that.
My suggestion would be to have two different tables, BingoCards
and BingoCardNumbers
. The BingoCards
table would have a CardID
, as well as other information relevant to the card, such as who the card belongs to, so maybe you'd want a UserID
column in there too. No card numbers are stored in this table.
Then, in the BingoCardNumbers
table, that would have three columns, CardID
, which is the primary key from the first table, NumberIndex
(1-24, which is the index of the number in the card), and finally CardNumber
, which is the actual number itself. Then, if you want to get all the numbers for a particular card, you can simply do:
SELECT CardNumber FROM BingoCardNumbers WHERE CardID = 1 ORDER BY NumberIndex
1
Usually we wouldn't answer a question like this as it is opinion based.
– DavidG
Nov 11 at 2:58
1
While it's true that it's opinion based, almost any DBA is going to say that storing it in 24 fields is not a good idea at all, so I'm trying to show a better way, as well as my thinking behind doing it a different way. By all means, other people should add other answers, but I think this is a pretty good "normalized" way of doing it.
– Sam Leatherdale
Nov 11 at 3:06
1
@Mohammad Many good questions generate some degree of opinion based on expert experience, but answers to this question will tend to be almost entirely based on opinions, rather than facts, references, or specific expertise
– DavidG
Nov 11 at 3:06
1
@Mohammad That's just how this site works, we don't like questions that have opinionated answers.
– DavidG
Nov 11 at 3:12
1
@Mohammad Nobody is saying your question is bad, just that you're better asking it somewhere else.
– DavidG
Nov 11 at 3:28
|
show 8 more comments
up vote
0
down vote
accepted
up vote
0
down vote
accepted
Good question!
You're right, storing it in 24 different integer fields is definitely a bad way to go. Concatenating them with commas might seem like a reasonable compromise, but it's inflexible, as you're treating them as text, not integers, so later on if you wanted to run queries such as SELECT MAX(CardNumber) FROM BingoCardNumbers WHERE CardID = 1
you couldn't do anything like that.
My suggestion would be to have two different tables, BingoCards
and BingoCardNumbers
. The BingoCards
table would have a CardID
, as well as other information relevant to the card, such as who the card belongs to, so maybe you'd want a UserID
column in there too. No card numbers are stored in this table.
Then, in the BingoCardNumbers
table, that would have three columns, CardID
, which is the primary key from the first table, NumberIndex
(1-24, which is the index of the number in the card), and finally CardNumber
, which is the actual number itself. Then, if you want to get all the numbers for a particular card, you can simply do:
SELECT CardNumber FROM BingoCardNumbers WHERE CardID = 1 ORDER BY NumberIndex
Good question!
You're right, storing it in 24 different integer fields is definitely a bad way to go. Concatenating them with commas might seem like a reasonable compromise, but it's inflexible, as you're treating them as text, not integers, so later on if you wanted to run queries such as SELECT MAX(CardNumber) FROM BingoCardNumbers WHERE CardID = 1
you couldn't do anything like that.
My suggestion would be to have two different tables, BingoCards
and BingoCardNumbers
. The BingoCards
table would have a CardID
, as well as other information relevant to the card, such as who the card belongs to, so maybe you'd want a UserID
column in there too. No card numbers are stored in this table.
Then, in the BingoCardNumbers
table, that would have three columns, CardID
, which is the primary key from the first table, NumberIndex
(1-24, which is the index of the number in the card), and finally CardNumber
, which is the actual number itself. Then, if you want to get all the numbers for a particular card, you can simply do:
SELECT CardNumber FROM BingoCardNumbers WHERE CardID = 1 ORDER BY NumberIndex
answered Nov 11 at 2:50
Sam Leatherdale
11517
11517
1
Usually we wouldn't answer a question like this as it is opinion based.
– DavidG
Nov 11 at 2:58
1
While it's true that it's opinion based, almost any DBA is going to say that storing it in 24 fields is not a good idea at all, so I'm trying to show a better way, as well as my thinking behind doing it a different way. By all means, other people should add other answers, but I think this is a pretty good "normalized" way of doing it.
– Sam Leatherdale
Nov 11 at 3:06
1
@Mohammad Many good questions generate some degree of opinion based on expert experience, but answers to this question will tend to be almost entirely based on opinions, rather than facts, references, or specific expertise
– DavidG
Nov 11 at 3:06
1
@Mohammad That's just how this site works, we don't like questions that have opinionated answers.
– DavidG
Nov 11 at 3:12
1
@Mohammad Nobody is saying your question is bad, just that you're better asking it somewhere else.
– DavidG
Nov 11 at 3:28
|
show 8 more comments
1
Usually we wouldn't answer a question like this as it is opinion based.
– DavidG
Nov 11 at 2:58
1
While it's true that it's opinion based, almost any DBA is going to say that storing it in 24 fields is not a good idea at all, so I'm trying to show a better way, as well as my thinking behind doing it a different way. By all means, other people should add other answers, but I think this is a pretty good "normalized" way of doing it.
– Sam Leatherdale
Nov 11 at 3:06
1
@Mohammad Many good questions generate some degree of opinion based on expert experience, but answers to this question will tend to be almost entirely based on opinions, rather than facts, references, or specific expertise
– DavidG
Nov 11 at 3:06
1
@Mohammad That's just how this site works, we don't like questions that have opinionated answers.
– DavidG
Nov 11 at 3:12
1
@Mohammad Nobody is saying your question is bad, just that you're better asking it somewhere else.
– DavidG
Nov 11 at 3:28
1
1
Usually we wouldn't answer a question like this as it is opinion based.
– DavidG
Nov 11 at 2:58
Usually we wouldn't answer a question like this as it is opinion based.
– DavidG
Nov 11 at 2:58
1
1
While it's true that it's opinion based, almost any DBA is going to say that storing it in 24 fields is not a good idea at all, so I'm trying to show a better way, as well as my thinking behind doing it a different way. By all means, other people should add other answers, but I think this is a pretty good "normalized" way of doing it.
– Sam Leatherdale
Nov 11 at 3:06
While it's true that it's opinion based, almost any DBA is going to say that storing it in 24 fields is not a good idea at all, so I'm trying to show a better way, as well as my thinking behind doing it a different way. By all means, other people should add other answers, but I think this is a pretty good "normalized" way of doing it.
– Sam Leatherdale
Nov 11 at 3:06
1
1
@Mohammad Many good questions generate some degree of opinion based on expert experience, but answers to this question will tend to be almost entirely based on opinions, rather than facts, references, or specific expertise
– DavidG
Nov 11 at 3:06
@Mohammad Many good questions generate some degree of opinion based on expert experience, but answers to this question will tend to be almost entirely based on opinions, rather than facts, references, or specific expertise
– DavidG
Nov 11 at 3:06
1
1
@Mohammad That's just how this site works, we don't like questions that have opinionated answers.
– DavidG
Nov 11 at 3:12
@Mohammad That's just how this site works, we don't like questions that have opinionated answers.
– DavidG
Nov 11 at 3:12
1
1
@Mohammad Nobody is saying your question is bad, just that you're better asking it somewhere else.
– DavidG
Nov 11 at 3:28
@Mohammad Nobody is saying your question is bad, just that you're better asking it somewhere else.
– DavidG
Nov 11 at 3:28
|
show 8 more comments
Welcome to StackOverflow. Please read the help section on how to ask and then edit your question, as this will help the community better understand your specific issue and provide you with a good answer: stackoverflow.com/help/how-to-ask
– Graham
Nov 11 at 3:45