More or less. The end goal here is to place one of many modules on a page dynamically (in a C# handler in my custom module) before navigating the user to that page. To do this I need a way of identifying the module instance that should go on the page. I could try dynamically creating a new module instance, or I could 'move' a pre-existing module instance that already exists in Modules by placing a dummy instance on the target page, then UPDATE TabModules SET ModuleID = @0 WHERE TabId = @1 AND ModuleID = @2; where @0 is the module I'm moving onto the page and @1 and @2 identify the page the users's going to be navigated to i.e. hotwire the page's module instance to actually be a different module instance. It's a bit cowboy but does seem to work.
I needed some way to uniquely distinguish many (40 or more) NewsFeed modules that had been created. I had started unwisely uniquely identifying them by putting unique strings in their username/password fields, which didn't impact the operation of their RSS mechanism because the feed providers we're hitting don't require authentication. But, because each NewsFeed module may have many RSS feeds configured for it, and my actual requirement is that NewsFeed modules be grouped into sets of 4 identified by some common identifier like 'food', I found that SELECT FROM News_Feeds WHERE [user] = 'food'; was likely to return multiple rows for a single NewsFeed module instance and clearly identifying the 4 instances I was trying to get became impractical.
So, using some other string attribute associated with a single module instance became necessary. I found there is a Module Moniker field in Settings for each instance but it must be unique among all module isntances, and because I need to group 4 together I can't use that for my shared id like 'food'.
So ModuleTitle seems best, I give each group of 4 an identical ModuleTitle then SELECT ModuleID FROM TabModules WHERE ModuleTitle = 'food'; will give me the group of 4 NewsFeed modules I'm looking for.
The alternative to this approach would be a pure data construct of the RSS feeds I want to present, then either overwrite the RSS feed config of an existing module to cause it to show those feeds (I could not find a way to trigger the NewsFeed module to refresh its data, even by using SQL to blank its Cache and Update date values then the C# DataCache.Clear*() methods), or by completely creating a new Module instance via SQL, and TabModules row to place a module on the page (I'm rather new to DNN coding and don't know how easy or supported this would be).