Читать книгу Designing Geodatabases for Transportation - J. Allison Butler - Страница 36
Valid value tables
ОглавлениеSometimes using a domain class is not enough to reflect the rich mix of attribute controls you need to employ. In such cases, you can use a structure called the valid value table. Such a table includes rows that reflect the combinations of values that are legitimate.
Figure 3.10 Valid value tables In this illustration, we need to control RouteType, which is based on a combination of urban type, functional class, and jurisdiction type. Each of these three variables is separately controlled by a coded value domain, but only certain combinations are valid. For instance, “rural minor collector” is valid but “urban minor collector” is not. The RouteType_VVT table stores the legitimate combinations and can serve to control Route table entries for the RouteType column using custom tools.
The example in figure 3.10 is one you have may have faced in dealing with the domain of functional classes used by the Highway Performance Monitoring System (HPMS). In some states, functional classification determines jurisdiction. Higher functional classes—those that emphasize mobility over land access—are assigned to the state DOT and lower functional classes to various levels of local government. An urban type field makes the example more interesting.
Domain classes can be used to control the values placed in each of these three fields individually, but cannot control combinations of the three fields. For example, you may want to prohibit a combination consisting of interstate highway, rural land use, and local government jurisdiction. There are only certain combinations that are allowable for urban type, functional class, and jurisdiction. For example, the route type representing a combination of rural interstate highway and city jurisdiction may not be valid. The valid route types are contained in the rows of the RouteType_VVT table. By linking the RouteType field in the Route table to the same field in the RouteType_VVT table, you can check the data through an on-the-fly join to see if all the entries are a valid route type.