Partitioning is helpful with large tables and management purposes for your DBA. If you have 50GB of data you should start looking into partitioning just for perfomrance alone, as Kim Tripp stated.
However, as a DBA I find partitioning great for management of large tables and reporting data that comes from a OLTP source, something which I think you are describing. Partitioning will allow you to also create different indexes, different fill factors, and utilize indexed views on top of them to gather massive performance boosts for aggregation type functions utilizng "Indexed Views over Partitioned Tables".
In my recommendation, get familiar with partitioning. It can save you disasters. I once inhereted a table that was 6 billion rows and growing at 2-3GB a day with only 20GB free on the drive. I was able to create a new partition for new data, copy out all the old data to different databases on RAID 5, and update the code to refer to views; all without client downtime in a 24/7 shop. Partitioning is essential as data sets grow larger.
Given the tables you have (I'm assuming this structure):
Products
--------
ID
Name
VendorID
MedicalCode
HelpText
--------
ID
Description
I'd suggest adding 2 new tables:
product_help_text
-----------------
product_id
help_Text_id
help_text_types
---------------
id
description
And changing HelpText
:
HelpText
--------
ID
Description
HelpText_type_id
So now, you could have some data like this:
Products
ID | Name | MedicalCode
-----------------------------
1 | red pills | 445631-XS3
2 | blue pill | 043-PPLE-A
HelpText
ID | TypeID | Description
--------------------------------------------
1 | 1 | Take 3 times / day w.water
2 | 3 | Verify patient's health card
3 | 2 | check for other drug reactions
helpText_Types
ID | Description
-----------------
1 | For the patient
2 | For the doctor
3 | for the pharmacist
product_help_text
product_id | help_text_id
---------------------------
1 | 1
1 | 3
2 | 1
2 | 2
product_help_text
tells you which text goes with which product, and you can use the help text types to control which text gets seen where (for patient, pharmacist, doctor, drug sales rep, etc...).
Best Answer
Here is an idea that seems to work. Generally speaking though, you can do this like this:
And so on.