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
_______________________________________________
Ldsoss mailing list
[email protected]
http://lists.ldsoss.org/mailman/listinfo/ldsoss