Every type of design has a design methodology that corresponds to that type of design – highlighting and drawing upon the strengths of the design type. For example, when designing a relational database, the design tends to focus on entities and their primary and foreign keys. “The whole key and nothing but the key” is a popular saying among of relational database designers.
TejonDb is a hybrid database that incorporates concepts from relational database, object databases, business intelligence and graph databases, as such the design methodology includes aspects of multiple technologies.
TejonDb has only a few types of meta-data, but when well-designed, these basic building blocks create a powerful and elegant solution.
- Start by having the users draw several scenarios on the white board of objects and their connections. From these scenarios, determine an initial set of possible classes and possible connection.
- Look for ways to combine or separate the classes into unique classes. Think in terms of relational database normalization – each class needs to really be a unique class.
- Look for ways the classes can be grouped within a hierarchy.
- Design a Region Hierarchy. The Region hierarchy should be more about the logical, organizational structure than the geophysical locations.
- Whiteboard the states and state flow for the known classes. Keep in mind that states and state flow are inherited. For a state if the state flow is from any state to any state, mark that state as State Flow Universal.
- Diagram the connections between states. If the endpoints are state dependent, identify the states required for the connection end-points.
- Identify attributes for the classes and connections. The attribute should be a one-time attribute and not a repeating attribute, and the attribute must directly describe the object or the connection. Don’t assign an attribute to a class/object if it really describes a connection.
- If the attribute pulls from a lookup list, identify the lookup list and create a domain class for the values of the lookup list.
- Identify sets of attributes that are commonly filled in together. Theses are typically repeating attributes. Together these attributes are many-to-one forms. Identify the Forms, the form attributes, and the form states.
Design workflow events that are fired by triggers and perform scheduled or immediate actions.