What follows is a reaction to the discussion Ric and I had with FSW folk on Monday. Haven't yet attempted to merge these ideas with those in the previous MOOD design attempt.
First some definitions:
So far I can't see any way for MOOT to keep track of configurations in terms of the parameter classes we discussed except to partition them according to what FSW binary file they end up in. To simplify, let's assume that there is a one-to-one correspondence between uploadable binary output and input source. This should be possible according to James, though it isn't required. Then MOOD has to have some tables to keep track of what a particular output binary "means":
Hope is that these three will settle down at some point and become static.
Then we need to keep track of instances of these things. FMX already handles instances of FSW files, but MOOD has to do the rest: have a table or tables for a parameter value and a way to associate a set of parameter values with a particular FSW file. [Could be that MOOD will also need a table for proposed FSW files. MOOD could assign its own primary key to a file before it's created for use in other MOOD tables. Once the file does exist, the FSW key would be stored in a separate field.] Inbetween there has to be something or someone which can create the FSW source file defined by the set of parameter values. Assume for now this is done offline with no help from MOOT.
Before making an entry in the parameter value table it has to be possible to determine if it already exists; that is, if there is already a row in the table for which some critical subset of fields match those of the proposed new row. The critical subset might vary, depending on the class of the parameter. For example, for some parameter classes the value in a timestamp field might be significant; for others, not.
Similarly, if all the parameter values for a given desired FSW output already exist, one has to be able to determine if the output file already exists (not a foregone conclusion since the parameter values may have been created for some other intended output, or maybe never were used at all).
Given that all these things are going to have to refer to each other, is it practical to separate into two databases? Or can we live without the formality of foreign key constraints?
|
Initial draft: 9 Aug 2005 Last revised: |
J. Bogart |