> I realized I was in for a beating when I made the original 
> post, and its not like I don't understand the benefits of 
> breaking data apart into separate tables, nor fail to 
> understand the black-box nature of data thats been input 
> free-form.

It's clobberin' time! Just kidding.

> My point was simply that this was presented as a very, very 
> simple need and, if it were me, I'd spend a bit of time 
> chatting with the guy, throwing out some ideas for the future 
> to see if he can envision - or is interested in - something 
> that can eventually grow to control his inventory (you 
> mentioned buying paprika) or if all he's really after is a 
> little ol' recipe book.

Unfortunately, end-users (and clients in general) can be pretty
short-sighted. It's our job, as developers, to foresee the issues that'll
come up with version 2.0, because even if this guy doesn't want that feature
now, or think he'll want it later, he probably will, and he'll be upset when
you tell him "well, we could have made that work, but we can't now, because
we made the initial database design very simple to meet your needs at the
time" - he won't understand that, and he won't care anyway, because he'll
want what he wants.

> Your point about this not being db-related and a ui issue 
> is very well-taken, but I can't see how the two can be 
> separated from one another in this case, as one seemingly 
> defines the other.

Oh, there's no need for that. You can build whatever UI you want. For
example, you could have a textarea, in which every separate line is an
ingredient. In the same page, you could use the CFWDDX tag to store the
recordset of ingredients in a JavaScript array. You could then use
JavaScript event handlers to check every line in the textarea, compare
what's been entered against the array, find the matching ingredients, and
store their IDs in a hidden field. If the user entered an ingredient not in
the array, you could use DHTML or a new window to ask the user whether they
meant to enter the closest match (assuming there is one) or add a new
ingredient entirely. This is just one potential solution - I haven't really
fleshed it out, but you could certainly do something close enough to this to
provide the necessary functionality.

Now, admittedly, this can be pretty complex in HTML/DHTML/JavaScript.
However, that's what programmers are supposed to do, if necessary. In
addition, this illustrates the appeal of using Flash as a UI, instead of
HTML, because you can provide this sort of dynamic functionality a lot
easier than you could otherwise.

In any case, though, even if you couldn't provide that sort of interface
now, it's a lot easier to rewrite interfaces than it is to restructure
databases.

Dave Watts, CTO, Fig Leaf Software
http://www.figleaf.com/
voice: (202) 797-5496
fax: (202) 797-5444

______________________________________________________________________
Structure your ColdFusion code with Fusebox. Get the official book at 
http://www.fusionauthority.com/bkinfo.cfm
FAQ: http://www.thenetprofits.co.uk/coldfusion/faq
Archives: http://www.mail-archive.com/cf-talk@houseoffusion.com/
Unsubscribe: http://www.houseoffusion.com/index.cfm?sidebar=lists

Reply via email to