Changes between Version 1 and Version 2 of TopologyCopy


Ignore:
Timestamp:
Apr 9, 2012, 8:18:24 AM (12 years ago)
Author:
martinl
Comment:

Legend:

Unmodified
Added
Removed
Modified
  • TopologyCopy

    v1 v2  
    77
    88 1. Copy all node,edge,face primitives to a different topology schema
    9  2. Copy all TopoGeometry definitions (from the relation table and the topology.layer table)
    10  3. Make the new TopoGeometry available again somewhere (in some actual table column)
     9 2. Copy all `TopoGeometry` definitions (from the relation table and the topology.layer table)
     10 3. Make the new `TopoGeometry` available again somewhere (in some actual table column)
    1111
    12 The nice thing about this is that primitive identifiers, as well as layer identifiers and TopoGeometry identifiers are all valid on a per-topology basis, so simply copying a whole topology schema and any rows in topology.layer would get you in a situation where you'd have every TopoGeometry from source topology have a corresponding TopoGeometry in target topology having the _same_ identifier. This is useful as you can then "rebind" a TopoGeometry from one topology to the other by simply modifying its "topology_id" field.
     12The nice thing about this is that primitive identifiers, as well as layer identifiers and [wiki:UsersWikiTopoGeometry TopoGeometry] identifiers are all valid on a per-topology basis, so simply copying a whole topology schema and any rows in topology.layer would get you in a situation where you'd have every [wiki:UsersWikiTopoGeometry TopoGeometry] from source topology have a corresponding [wiki:UsersWikiTopoGeometry TopoGeometry] in target topology having the _same_ identifier. This is useful as you can then "rebind" a [wiki:UsersWikiTopoGeometry TopoGeometry] from one topology to the other by simply modifying its "topology_id" field.
    1313
    1414Only trouble would be tweaking the copies of topology.layer records (the rows defining the layers, and thus completing definition of the TopoGeometry which belong to those layers) as those records are currently expected to associate a conceptual layer to an actual column of a database table. But we don't have those table columns yet (and we may even not want it).
     
    2222With this proposal, steps 1 and 2 described in the introduction are seen as a single step, effectively rendering the relation table and the rows in topology.layer (required for proper interpretation of the relation table) as a fundamental part of the topology structure.
    2323
    24 In order to decouple the "definition" of the TopoGeometry from their deployment in actual table, we'd need to allow not specifying a schema/table/col in topology.layer records. Such records might then represent "detached layers", that are conceptual layers (set of TopoGeometry objects) which are not bound to a specific database column.
     24In order to decouple the "definition" of the `TopoGeometry` from their deployment in actual table, we'd need to allow not specifying a schema/table/col in topology.layer records. Such records might then represent "detached layers", that are conceptual layers (set of `TopoGeometry` objects) which are not bound to a specific database column.
    2525
    2626This would imply changing the current definition of topology.layer table in a normalized form (for example splitting in two tables, one with structural definition fields, another with deployment info) or using placeholder values for the three fields which would be meaningless for "detached layers".