One of my employees is suggesting a DB schema for one of our new projects and I have some reservations about it.
I am going to take an example to describe the tables we are setting up in our DB
EmpName----Dept----Status----Experience
Charles-------3--------4-----------6
Stacy--------3--------4-----------7
Sarah--------1--------5-----------7
Andrew------2--------4-----------7
Attribute----Selection-------Value
Dept---------Sales------------1
Dept---------Legal------------2
Dept---------Accounting------3
Status-------Active-----------4
Status-------Not Active-------5
Experience---Beginner---------6
Experience---Expert-----------7
The first table says Charles Dept = 3 which means looking at the second table Charles’ Department = Accounting. Pretty straight forward. In this new database we will have about 10-15 tables similar to table1 and 1 table similar to table2 which will hold the attributes of all the other tables in the DB. Each of these tables are expected to be big. About 1000+ records each.
My first problem with this structure is that the first table above is not very readable. At one glance I cannot look at table1 and tell what Department Charles works in. I would have to either refer to table2 or write a join query between the two tables.
The second problem I have is that my application developers who are writing the
VB source code are complaining that this is adding overhead on them when they have to write something back to table1. So for example if Charles’ status changes from Active to Not Active, in the
VB source instead of writing a simple query that changes Charles’ status from Active to NotActive, now they have to reference table2 everytime they have to write anything to table1.
The DBA who is suggesting this schema is saying that writing the actual words “Sales, Accounting, Beginner, Expert… etc” will cause the database to run slower since there are so many records in these 10-15 tables. And also this would break database design disciplines.
I am a new team lead and not really sure how to resolve this issue. Any help/insight is much appreciated.