IWETHEY v. 0.3.0 | TODO
1,095 registered users | 0 active users | 0 LpH | Statistics
Login | Create New User
IWETHEY Banner

Welcome to IWETHEY!

New Choke point
If you change a table, you are changing the data structure. Any software that uses that table is potentially impacted.

By using stored procedures as filters, however, you have more localized control over how the rest of the software world handles the updated data structure - anywhere from making it totally hidden from the rest of the tasks, to requiring that all calls to the stored procedure pass an additional parameter.
New you looz some flexibility that way IMO
>> If you change a table, you are changing the data structure. Any software that uses that table is potentially impacted.....By using stored procedures as filters, however.... <<

Are you suggesting *starting out* with nothing but stored procedures? IMO that would hamper developent. For example, if you want to join in a table that was not joined before, you have to alter the stored-procedural, and/or make a new one. I would rather see any filtering/hiding/abstracting be on an entity level in the DB, if required, so that joins can be controlled programmatically.

It may also limit WHERE clause dynamism (depending on DB vendor). Flexible Boolean filtering and joining are part of what makes tables so great. You would be de-clawing them, making them no better than FORTRAN calls more or less.

Regarding "changing a table", once it is populated with data, existing columns are not altered that much due to potential conversion effort. This factor tends to limit changes to existing columns, for good or bad. Thus, putting a layer over 100% of the fields to provide an abstract view of say 3% of them is not a very good expentiture of abstraction layers IMO. Spend layers wisely.

________________
oop.ismad.com
New Huh?
Regarding "changing a table", once it is populated with data, existing columns are not altered that much due to potential conversion effort. This factor tends to limit changes to existing columns, for good or bad.

Huh? Wha?

I dunno anything about your work environment, but I can say that we alter tables to add and remove columns with just about every release. I'm in charge of the release process here, and we're constantly making changes to our data structure.

As the system is enhanced, or features requested, we realize that it's easier to simply add a column to AnyGivenTable than to add a new table where the necessary data doesn't make sense.

Granted, that's not always the case, and I'm not saying that we don't add tables. But if it makes sense to add a column to a table, then by all means, add it. Or take it away. Whatever makes sense, and provides the feature requested.

Where do we have to change our code? All of our SQL calls are either in .properties files (for our Java GUI-based client) or in stored procedures on the server. Does that mean that I've got 2 places to make changes? Yep. But I'm changing the data structure, which inherently means that I will need to make changes to anything that accesses the tables in question and requires access to the new fields. Thankfully, our access points into the database are well encapsulated into .properties files. :)
-YendorMike

Real programmers use "vi a.out".
New I don't believe you
(* I dunno anything about your work environment, but I can say that we alter tables to add and remove columns with just about every release. I'm in charge of the release process here, and we're constantly making changes to our data structure. *)

I do see *additions*, but not a lot of removal of columns.

(* Thankfully, our access points into the database are well encapsulated into .properties files. *)

I am not quite sure what you mean. "Where to group stuff" for maintenance reasons often involves sticky tradeoffs, being that real applications deal with multiple dimensions of aspects. Grouping by aspect A will often make B-related changes harder. This is just a fact of Software Engineering. Oddly, people are blind to other dimensions beyond the one they deem King. "Encapsulation" rarely magically "just hides" everything at the right time from the right people all the time.

How about a specific example.
________________
oop.ismad.com
     Any preferred naming conventions? - (drewk) - (19)
         Re: Any preferred naming conventions? - (admin) - (10)
             That's about what I'm trying to do - (drewk)
             Busting Abstraction? - (tablizer) - (8)
                 Many times that abstraction is put into a stored procedure - (admin) - (7)
                     But you would still have to change "ta-x" to "sp-x" -NT - (tablizer) - (6)
                         Uh, no. - (admin) - (5)
                             Field management? - (tablizer) - (4)
                                 Choke point - (ChrisR) - (3)
                                     you looz some flexibility that way IMO - (tablizer) - (2)
                                         Huh? - (Yendor) - (1)
                                             I don't believe you - (tablizer)
         Re: Any preferred naming conventions? - (Yendor) - (2)
             Extension of this idea. - (static) - (1)
                 Foreign keys - (tablizer)
         Chin up, Drew, that's not so big a problem! - (CRConrad) - (2)
             "I work for a living" - (drewk) - (1)
                 The meat between my ears isn't completely occified... yet. -NT - (CRConrad)
         A good idea not to follow - (nking)
         Very simple (minded?) convention - (wharris2)

We'll all still go there on holiday, get the shits, and complain about their hilariously bad plumbing.
95 ms