It is quite difficult for me to imagine your database schema, but perhaps I can explain it in another way.
A moduleID is reference to an instance of a module, somewhat like an item's storage location in a warehouse. The location id is always the same, but an item cam be moved to a different location just by changing the item.location.
In the case of DotNetNuke, a ModuleID is issued when you add a new module. When you add that module to a page, it is referenced by the ModuleID. DNN uses this technique so that you can use the same base module on different pages, each with its own unique settings.
The bottom line is that if you are developing a module, you should follow the best practice that DNN has already implemented for you. Does that make more sense?