Smelly Database

1. multipurpose column
ex: a column used to store either someone's birth date if he/she is a customer or the start date if he/she is an employee.

2. multipurpose table
ex: a generic Customer table that is used to store information about both people and corporations.

3. redundant data
when data is stored in more than one places.

4. table with too many columns
indicate that the table is lack of cohesion and it needs to be normalized.

5. table with too many rows
it can cause performance problems and it needs to be splitted horizontally, or vertically.

6. smart columns
if first four digits of the client's ID indicate the client's home branch, then it's a smart column.

7. fear of change
is a good indicator that you have a serious technical risk on your hands, one that will get worse over time.


from 'Refactoring Databases' - a Martin Fowler signature series

0 comments: (+add yours?)