> The church has about 2000 members. The groups can range in
> membership from
> as few as 5 to as many as 300.
>
> I'm a novice programmer and was looking into using MySQL and PHP to
> implement the system.
>
> Am I on the right track?
> Any thoughts or suggestions?
> Me being a beginner am I going to eat up to much time on my
> learning curve?
> Would I be better off paying someone to do this?
> Project wise is this a small, medium, or large undertaking.
No actually this is a great beginner project because it's not too
difficult.
First thing you want to consider is your database structure. Sounds
like you have members, groups, and dates of attendance. I'm not a DBA
or expert databse programmer, but this is how I'd organize things.
(use your preferred naming convention.. For instance, I'd called the
Memberships something like "xrefUsersGroups")
Table 1: Users
This contains all your user information. The first column in most
database tables (there are exceptions) should always be a primary key
that's automatically incremented each time a record is added. This
creates a unique identifier for each record. I forget what they call it
in MySQL, maybe AutoNumber (on an INT or INTEGER data type). In MS SQL
Server they call it "identity".
Columns recommended:
UsersID
Name
Address
Phone
etc...
Table 2: Groups
This is where you hold some basic (or detailed) information about the
groups that meet. Same deal with the identity/autonumber column
Columns recommended:
GroupsID
GroupName
GroupLeader
MeetingLocation (might be another ID field that points to a
locations table.. Or locatio may be stored on a date by date basis if it
is possible that it moves)
Table 3: Memberships
This is a cross ref table that you store the identity/autonum values
for a user and a single group that they below to. There will be
multiple entries if a user is in multiple groups. This probably only
needs to consist of 3 columns: ID (identity/autonum), UserID, GroupID
Columns recommended:
MembershipsID
UsersID
GroupsID
Table 4: Attendance
After your identity/autonumber ID field, you'd want a date, groupid
and userid. You could have other info too like Topic of the meeting or
guest speaker info or whatever. If you get too much info, you might
want to store it in another table with a link back to the identity
column of this table
Columsn Recommended:
AttendanceID
Date
UsersID
GroupsID
Depending on how anal you are about normalization, you might have an
xref table that links groups and users with attendance and only have
meeting date and location (and other such unique data) in the Attendance
or maybe a "Meetings" table.
>From there, you just need to learn how to do some SQL to join the tables
in order to retrieve the data.
The other things on your task list would be:
1. Create an interface
2. Learn how to insert data into the database (keeping all the tables
straight)
3. Probably learn how to import an existing list of your 2000 members
into the database to save you some typing
4. Create reports based on the data you pull showing "last attended this
group" for each user and flag it if it's over a certain amount of time.
You'll find some good guideance on these groups (you might check out the
PHP DB one for the database questions, but I'm sure someone on here
could help as well).
Anyway, hope that gives you an idea of what you're getting into. It's
really not all that bad, but it'll be a challenge for a newbie :) A
good challenge though, not one of those TOO frustrating ones.. Heh
Good luck!
-TG
--
PHP Windows Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php