I'm working on a database that tracks the handling of our RMA's.
This is how the handling process could go:
-1- Customer calls or emails our support department, with one or more defective devices, each having their own serial number. Our support department creates an RMA (tblRMA), and adds the products to that RMA (tblHandlingSupport).
-2- Depending on where the customer is located, he can either:
-2a- send the devices directly to our headquarters, so it gets repaired and gets shipped back, or in case of unrepairable: a replacement product gets sent back (tblHandlingHQ).
-2b- send the device to one of our "swapstocks", which sends the customer a new spare device (tblHandlingSwapstock), and forwards the defective device to the headquarters (tblHandlingSwapstock.) This defective device then gets repaired in our HQ, and it gets sent back (or a replacement in case of unrepairable) to the swapstock, so they can use it for a next case. (tblHandlingHQ)
Let's now pick option 2b, so the customer will send his device to one of our swapstocks nearby.
I have created a table for the handling by the support department, containing the serial number of the defective product as mentioned by the customer [HSpSerial]
If everything goes well, that is also the serial number that the swapstock receives from the customer. However, the customer sometimes sends the wrong device (other serial) back. I track this by means of the field [HSSReceivedFromCustomer].
The swapstock provides the customer with one of their spare devices, and enters the serial in [HSSReadyForCustomer]
The swapstock forwards the defective device to the HQ. It doesn't happen often, but sometimes, also here, an other serial has been received than the one that was expected. I track this by means of the field [HHQReceivedInHQ)]
The serial number of the repaired or replacement device that gets sent (either to the customer -2a-, or to the swapstock -2b-), gets entered in the field [HHQSentFromHQ]
The swapstock enters the new / repaired serial that they have received from the HQ in [HSSReceivedFromHQ] -should be the same as [HHQSentFromHQ], but you never know ...
I would now to put the serials in their own database, and link tblSerials to:
- tblHandlingSupport: no issues here.
- tblBlacklistDevices: an extra table, for serials that have been reported as stolen / ... - no issues here
- tblHandlingSwapstock: because the swapstock receives a serial from the customer, sends a serial to the customer, and receives a serial from our HQ, I'd need three relationships between those two tables. I'm not sure what's "best practice" for this kind of thing.
- tblHandlingHQ: also here, I'd need multiple relationships between the two tables: HQ receives a serial, and sends a serial. I'm not sure what's "best practice" for this kind of thing.
How do I solve this issue?
Do I use multiple instances of tblSerials? Or is there a better way?
Any input is appreciated!
I have added a sample database (left out the tables that were not relevant to this post) and a picture with the relationships I'd need.
This is how the handling process could go:
-1- Customer calls or emails our support department, with one or more defective devices, each having their own serial number. Our support department creates an RMA (tblRMA), and adds the products to that RMA (tblHandlingSupport).
-2- Depending on where the customer is located, he can either:
-2a- send the devices directly to our headquarters, so it gets repaired and gets shipped back, or in case of unrepairable: a replacement product gets sent back (tblHandlingHQ).
-2b- send the device to one of our "swapstocks", which sends the customer a new spare device (tblHandlingSwapstock), and forwards the defective device to the headquarters (tblHandlingSwapstock.) This defective device then gets repaired in our HQ, and it gets sent back (or a replacement in case of unrepairable) to the swapstock, so they can use it for a next case. (tblHandlingHQ)
Let's now pick option 2b, so the customer will send his device to one of our swapstocks nearby.
I have created a table for the handling by the support department, containing the serial number of the defective product as mentioned by the customer [HSpSerial]
If everything goes well, that is also the serial number that the swapstock receives from the customer. However, the customer sometimes sends the wrong device (other serial) back. I track this by means of the field [HSSReceivedFromCustomer].
The swapstock provides the customer with one of their spare devices, and enters the serial in [HSSReadyForCustomer]
The swapstock forwards the defective device to the HQ. It doesn't happen often, but sometimes, also here, an other serial has been received than the one that was expected. I track this by means of the field [HHQReceivedInHQ)]
The serial number of the repaired or replacement device that gets sent (either to the customer -2a-, or to the swapstock -2b-), gets entered in the field [HHQSentFromHQ]
The swapstock enters the new / repaired serial that they have received from the HQ in [HSSReceivedFromHQ] -should be the same as [HHQSentFromHQ], but you never know ...
I would now to put the serials in their own database, and link tblSerials to:
- tblHandlingSupport: no issues here.
- tblBlacklistDevices: an extra table, for serials that have been reported as stolen / ... - no issues here
- tblHandlingSwapstock: because the swapstock receives a serial from the customer, sends a serial to the customer, and receives a serial from our HQ, I'd need three relationships between those two tables. I'm not sure what's "best practice" for this kind of thing.
- tblHandlingHQ: also here, I'd need multiple relationships between the two tables: HQ receives a serial, and sends a serial. I'm not sure what's "best practice" for this kind of thing.
How do I solve this issue?
Do I use multiple instances of tblSerials? Or is there a better way?
Any input is appreciated!
I have added a sample database (left out the tables that were not relevant to this post) and a picture with the relationships I'd need.
Attachments
Last edited: