Re: OO versus RDB
Date: Sun, 02 Jul 2006 21:41:12 GMT
Message-ID: <Y3Xpg.5330$pu3.121178_at_ursa-nb00s0.nbnet.nb.ca>
topmind wrote:
>>>>This sort of situation is actually rather common at the enterprise >>>>level. >>> >>>Changing names of columns but keeping the sematics is extremly rare, >>>just because it breaks the interface to the applications. >> >>So do all changes to enterprise schemas, which is why /any/ change to >>such a schema is a big deal. The DBA already had to change the schema >>to provide burdenedSalary and chose that opportunity to clean up the >>semantics.
>
> Perhaps I missed the purpose of this debate, but changing the name of
> *any* interface in any paradigm or language can result in headaches. We
> use names to reference things. If 50 other applications or routines or
> classes refer to "fooSalary" and we later realize that it should have
> been called "barSalary", then we are faced with a *universal* dilema of
> whether to hunt down and change all 50 references, or leave it with a
> bad name. This is not a problem unique to databases.
>
> I generally suggest leaving it with the bad name and putting a note in
> the schema (if provided) or routine or class about the actual nature of
> the misnamed thing. If you try to hunt down all references, you may
> miss some and your boss will be pissed when things break.
Coward. Seriously, though, my decision process for whether to fix the name does not involve even a moment's consideration for how my boss will respond. Either the problem is benign in the sense that it won't confuse people too much and is unlikely to spread, or it is malignant in the sense that it will confuse and will likely spread through the code using contradictory semantics. It makes sense to excise the latter regardless of what the boss might think.
If one knows what one is doing, a smart boss will accept one's judgement. Of course, that only works for those who have a clue. If one is not absolutely certain that one has a clue, it's probably best to consider what the boss might think.
> The only universal way around this dilema that I see is to use "dumb
> keys", names that carry no meaning such that they can't have the wrong
> meaning by design. However, it is hard to conceptual work with
> variables and interfaces with names like "A348282" and "SDFASD".
We have tiny little skulls with only a couple pints of gray matter. That sort of thing would only work for the smallest of problems. Usually, we need as much assistance as we can get. Received on Sun Jul 02 2006 - 23:41:12 CEST