I have some table in database.Taking about only two
1-Sports
2-Match<>
.......
In sports table there is columns SportType<br>
and In Match table there is column MatchType
Option 1:
I have option to create SportType and MatchType Table
Option 2:
and second option is to crate Enums of SportType and MatchType
Some people don't prefer option 1 due to extra joins in query
What you suggest
I also need to show SportType & MatchType in DropDownLists
You need to consider several factors when deciding between lookup tables and enums or similar in-code constants. Principal among those factors is the question of how likely it is that you would have to add or modify any of those values without redeploying the application.
Another thing to keep in mind is that if you use in-code values, you won't likely be using any kind of surrogate key, so if you ever decided to change the spelling of something in your code, you might create a problem with mismatched data in the database.
Since you also need to show these types in dropdown lists, I'll advise against using bare enums, as it gets hacky to display UI-friendly versions (with spaces between words, for example).
The simplest alternative is a class with string constants:
A more sophisticated option, but perhaps unnecessary for this use case, is to make these objects strongly typed:
The advantage here is that you can use these values as strings
but you don't have to declare variables and parameters as bare strings:
Again, these are just options; ultimately it comes down to how your application will be deployed and how subject these data are to modification.