![]() | |
![]() |
| | Thread Tools | Display Modes |
#1
| |||
| |||
|
#2
| |||
| |||
|
|
Hi - I have a design question and am wondering if this is a commonly encountered issue and if it has a standard solution. Quick version of question: Free-lance business accounting database. How to design to account for payments that apply to a specific job AND payments that apply to an overall balance owed for more than one job. Do I make 2 payment tables - one for Client payments and one for Job payments? Or is there some other way? More detailed version of question: I have a database that I designed myself for my freelance business. Essentially it boils down to three main tables - Clients, Jobs and Payments. The relationship of clients to jobs is one to many (many jobs per client). I related the payments table to the clients table (again many payments per client). I did it this way rather than relate the payments to the jobs table for the following reason: sometimes a client will make a partial payment toward the over-all balance that he/she owes for several jobs, so that the payment will not relate to any specific job. More often, however, they will make a payment toward a specific job. In that case I still apply it to the over-all balance. This basically works, as the math works out the same either way. The problem arises in the following scenario: let's say they have several jobs pending and have previously made a partial payment toward job X. When I want to invoice them again at a later date for job X, the job invoice then does not reflect the partial payment. So, in this case, I have invoice them for the particular job and also send along an invoice for all jobs to show their payment. This is somewhat clumsy. Should I create 2 payment tables - one for "Client" payments and one for "Job" payments? This seems redundant. Are there others who have encountered this and come up with a solution? I'm not an accountant by any stretch, so maybe there is a standard accounting method to deal with this that I am unaware of. Suggestions? Examples? Thanks all. |

#3
| |||
| |||
|
|
Hi - I have a design question and am wondering if this is a commonly encountered issue and if it has a standard solution. Quick version of question: Free-lance business accounting database. How to design to account for payments that apply to a specific job AND payments that apply to an overall balance owed for more than one job. Do I make 2 payment tables - one for Client payments and one for Job payments? Or is there some other way? More detailed version of question: I have a database that I designed myself for my freelance business. Essentially it boils down to three main tables - Clients, Jobs and Payments. The relationship of clients to jobs is one to many (many jobs per client). I related the payments table to the clients table (again many payments per client). I did it this way rather than relate the payments to the jobs table for the following reason: sometimes a client will make a partial payment toward the over-all balance that he/she owes for several jobs, so that the payment will not relate to any specific job. More often, however, they will make a payment toward a specific job. In that case I still apply it to the over-all balance. This basically works, as the math works out the same either way. The problem arises in the following scenario: let's say they have several jobs pending and have previously made a partial payment toward job X. When I want to invoice them again at a later date for job X, the job invoice then does not reflect the partial payment. So, in this case, I have invoice them for the particular job and also send along an invoice for all jobs to show their payment. This is somewhat clumsy. Should I create 2 payment tables - one for "Client" payments and one for "Job" payments? This seems redundant. Are there others who have encountered this and come up with a solution? I'm not an accountant by any stretch, so maybe there is a standard accounting method to deal with this that I am unaware of. Suggestions? Examples? Thanks all. |
#4
| |||
| |||
|
#5
| |||
| |||
|
|
Wow - thanks for the help. I've been learning FMP while slowly building and using this database. It looks like it's time to overhaul it using these techniques or maybe even start over from scratch. To be honest I don't completely understand the "join table" concept yet, but at least I know what direction to go. I just ordered that "missing manual" book too, so I should be good to go. Thanks again. |
#6
| |||
| |||
|
|
A join table-- often called a junction table in the SQL world-- does just what it says-- it joins two other tables in a many-to-many relationship. The easiest example is invoice line items, which joins the invoice to an inventory item. An invoice line item record needs two fields-- the serial numbers (or 'ID' or 'foreign key'-- some form of unique identifier) for the inventory item and the invoice. Once it has those two pieces of information, it can figure out, by going through the invoice back to the customer, who is being invoiced. By looking at the invoice, you get the invoice date and, if there are separate tables for them, the order number and packing slip info. By going the other way-- back to the inventory table-- you can look from the inventory table at the invoice line items and see how many widgets have been sold, or packed, if you look at the packing slip line items, or just ordered, if you look at the order line items. Another common example is class registrations in a school, joining classes to students, where each class has more than one student, and each student has more than one class. The join table will have the student ID and the class ID. Hotel rooms joined to customers via a 'Bookings' join table. Donors joined to charities via a 'Donations' join table. Staff joined to calendar dates via a 'Tasks' join table. |
![]() |
| Thread Tools | |
| Display Modes | |
| |