Is a one column table good design? [closed]

It it ok to have a table with just one column? I know it isn't technically illegal, but is it considered poor design?

EDIT:

Here are a few examples:

  • You have a table with the 50 valid US state codes, but you have no need to store the verbose state names.
  • An email blacklist.

Someone mentioned adding a key field. The way I see it, this single column WOULD be the primary key.


Solution 1:

In terms of relational algebra this would be a unary relation, meaning "this thing exists"

Yes, it's fine to have a table defining such a relation: for instance, to define a domain.

The values of such a table should be natural primary keys of course.

A lookup table of prime numbers is what comes to my mind first.

Solution 2:

Yes, it's certainly good design to design a table in such a way as to make it most efficient. "Bad RDBMS Design" is usually centered around inefficiency.

However, I have found that most cases of single column design could benefit from an additional column. For example, State Codes can typically have the Full State name spelled out in a second column. Or a blacklist can have notes associated. But, if your design really does not need that information, then it's perfectly ok to have the single column.

Solution 3:

I've used them in the past. One client of mine wanted to auto block anyone trying to sign up with a phone number in this big list he had so it was just one big blacklist.

Solution 4:

If there is a valid need for it, then I don't see a problem. Maybe you just want a list of possibilities to display for some reason and you want to be able to dynamically change it, but have no need to link it to another table.