Hacker News new | past | comments | ask | show | jobs | submit login

Let me add a few more from my 16+ years of DB coding:

1. Many field types will change over time. Booleans will become multiple choice. Character fields will become memos/text. Date fields will start to have year, month, or day parts optional.

2. All tables with tax-logic will be compounded by code hacks. So just a table with county tax rates and order amount ranges will not be sufficient to calculate the applicable tax because you will need to keep adding special conditions of tax to apply when pencils are sold on 3rd week of every month when school is in session.

3. Management will never understand how it could be that complex to "just change the database" to enable payroll calculation for hourly employees who work overtime just because the database already handles the fixed payroll for salaried employees. In other words, databases with existing data, logic, triggers, and reports will always be difficult to change.

4. The biggest rule is that business logic never ever translates to structured database tables without lots of conditions in code and strict limitations in scope of application. I'm not talking about pretty to-do lists, address books, or blog engines. I'm talking custom ERP apps, MRP modules, production forecast algos and my favorite, scheduling for production and employees.

I guess the take-home message in all of this is that don't get into this field if you don't like challenges of this sort. In addition to coding up DB apps, I also make a lot of non-database apps that keep me sane and balance things out. However, in terms of sheer complexity and project planning, good DB apps are pretty high on my list of "exciting" things.




Interesting, if these DBs ever growing in complexity are just a representation of an organization's inner workings...

I wonder if you could use an organization's DB to predict when they'll be too big to function.


> Interesting, if these DBs ever growing in complexity are just a representation of an organization's inner workings...

Isn't there a named law based on this?

EDIT: Yup. Found it.

http://en.wikipedia.org/wiki/Conway%27s_Law


I worry about the absoluteness of 2 & 4.

I've seen too many places where reasoning similar to that of 2 results in developers prematurely punting to quick and dirty hacks to get a trouble ticket closed faster. It may not be possible to get by with anything but a one-off conditional, especially in tax calculation , but I worry about the claim that it is inevitable. It provides a justification to not look for more maintainable alternatives first.

The same thing with 4. The only thing that bothers me is the sense of inevitablility. There are places where specific cases need to be dealt with in code, and it is an entirely different argument of how they should be dealt with once that much is assumed. But the inevitability bothers me, if only because I have run into several cases where things were claimed inevitable, and upon closer inspection caused large amounts of pain that could have been avoided if the existence of alternatives was considered.


You're right - especially about 4 - but the absoluteness is in practice: your solutions to 2 and 4 require a critical mass of people to understand the data being modelled (and thus - or perhaps the other way around - the processes creating/manipulating the data) and this is so rare as to be effectively non-existent.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: