[Ldsoss] Scout Tracking
A. Rick Anderson
a_rick at earthlink.net
Mon Jul 10 22:24:33 EDT 2006
Tom Welch wrote:
> I've used Dia in the past for Linux. I've not used Umbrello but it
> looks like it should do the trick just fine
I used Umbrello briefly once. As I recall, it worked reasonably well
for drawing, but I didn't care for its round-trip code-generation.
Unless you are doing sequence diagrams, or generating code, my
experience has been that CASE tools aren't worth the hassle. Visio or
Dia works just as well.
> * As a general note: If you want to allow for synchronization
> between a local system and a remote system then all of your
> primary keys should be in the form of a guid (I use varchar(32)).
> Most DB's have an auto-increment type for ints and these are used
> as primary keys but you can't synchronize as easily .. especially
> if you are allowing for a multi-user system because two keys could
> get the same value. If your is not to allow for synchronization
> then I'd let the DB handle the auto-assigning of the primary key.
There was a previous link to GUID's and UUID's in an earlier discussion
that pointed to Wikipedia. Any system that wants to support
synchronization should probably use some form of GUID.
> * On the "address_table", what is the "date" field for? Also do we
> think that we will have multiple addresses for people and so need
> to keep a separate table for them? I agree if this is to be
> expected then it would be more efficient to have the addresses in
> a separate table.
With all the devorces, multiple addresses actually makes sense.
However, to avoid burdening everyone with multiple addresses, you might
define a set of "primary" address fields.
> * What is the date field on the "phone_table" used for? In fact,
> all tables have a "date" field. I'm not sure their purpose.
> * On the "Emergency Contact" section, I can see that you intend to
> have a small link table linking "boys" to their parents or other
> contacts. My comment here is that it may be a bit of "overkill"
> to force the user to enter in all parents and other people that
> act as emergency contact information into the DB. What I mean is
> that if I enter in a boy's information (address, phone number,
> etc) I then have to enter in the same information for his parents
> so that I can link the boy to the parent. What you end up with is
> two records with basically the same information. It may be more
> efficient to create a "family" table which would consist of the
> last name of the family and then the address, phone numbers, etc.
> Then have a "family members" table which you enter in family
> members (first name, birthdates, etc). This way you are not
> double or triple entering in the address.
To be PC, I'd suggest calling this a "Household" and you possible might
want to define one or more "Head of Household".
> * On the "authorization_table", I recommend that you lose the
> "userid" and use the email address to verify and allow the user to
> login.
I hate it when sites do this. You are presuming (a) a person's email is
fixed for life, (b) that ISP's don't reissue email addresses. Neither
of these conditions are assured. One of my original ISP's re-issued my
email address to someone else within a few months of my dropping the
account. IMHO, email address should no more be used for a userid then a
street address.
> * On the Image and Picture tables, would it make more sense to store
> the data in a blob in the DB instead of having a link to a file?
> Links are easily broken.
Also, file links tend to interfere with data portabilility.
>
> Good start Oscar.
I'm not a fan of PHP, but databases are universal :-) Also, going with
a "web" application will usually facilitate a n-tier application
approach, so even if the user stages it entirely on one box, the
application will have been designed so that it can later be scaled.
Putting a fat client on a web application is much easier then
refactoring a desktop application or a client-server application.
--
A. Rick Anderson
More information about the Ldsoss
mailing list