Materials Module — Model Diagram

Click on any highlighted model to open its list view.

Back to Explorer
Browsable model (click to open) Internal model Foreign key Many-to-many
%%{init: {'securityLevel': 'loose', 'theme': 'default', 'flowchart': {'curve': 'basis', 'nodeSpacing': 30, 'rankSpacing': 60}}}%%
flowchart TD

    subgraph classification["Materials & Classification"]
        MaterialCategory["MaterialCategory"]
        Material["Material"]
        MaterialComponent["MaterialComponent"]
        MaterialComponentGroup["MaterialComponentGroup"]
    end

    subgraph props["Properties"]
        MaterialPropertyGroup["MaterialPropertyGroup"]
        MaterialProperty["MaterialProperty"]
        MaterialPropertyValue["MaterialPropertyValue"]
    end

    subgraph analysis["Samples & Analysis"]
        AnalyticalMethod["AnalyticalMethod"]
        SampleSeries["SampleSeries"]
        Sample["Sample"]
    end

    subgraph comp["Compositions & Measurements"]
        Composition["Composition"]
        ComponentMeasurement["ComponentMeasurement"]
    end

    %% ---- FK relationships (solid) ----
    SampleSeries -->|"material"| Material
        Sample -->|"material"| Material
        Sample -->|"series"| SampleSeries
        MaterialProperty -->|"group"| MaterialPropertyGroup
        MaterialProperty -->|"default_basis_component"| MaterialComponent
        MaterialPropertyValue -->|"property"| MaterialProperty
        MaterialPropertyValue -->|"analytical_method"| AnalyticalMethod
        Composition -->|"sample"| Sample
        Composition -->|"group"| MaterialComponentGroup
        Composition -->|"fractions_of"| MaterialComponent
        ComponentMeasurement -->|"sample"| Sample
        ComponentMeasurement -->|"group"| MaterialComponentGroup
        ComponentMeasurement -->|"component"| MaterialComponent
        ComponentMeasurement -->|"analytical_method"| AnalyticalMethod

        %% ---- M2M relationships (dashed) ----
        Material -.-|"categories"| MaterialCategory
        Sample -.-|"properties"| MaterialPropertyValue
        SampleSeries -.-|"temporal_distributions"| TD_ext["TemporalDistribution (ext)"]
        AnalyticalMethod -.-|"sources"| Src_ext["Source (ext)"]

        %% ---- Styling ----
        classDef clickable fill:#dbeafe,stroke:#1e40af,stroke-width:2px,color:#1e3a5f
        classDef internal fill:#f3f4f6,stroke:#9ca3af,stroke-width:1px,color:#4b5563
        classDef external fill:#fef9c3,stroke:#ca8a04,stroke-width:1px,color:#713f12,font-style:italic

        class Material,MaterialCategory,MaterialComponent,MaterialComponentGroup clickable
        class MaterialProperty clickable
        class AnalyticalMethod,SampleSeries,Sample clickable
        class MaterialPropertyGroup,Composition,ComponentMeasurement,MaterialPropertyValue internal
        class TD_ext,Src_ext external

        %% ---- Click handlers ----
        click Material href "/materials/materials/" _self
        click MaterialCategory href "/materials/categories/" _self
        click MaterialComponent href "/materials/components/" _self
        click MaterialComponentGroup href "/materials/componentgroups/" _self
        click MaterialProperty href "/materials/properties/" _self
        click AnalyticalMethod href "/materials/analytical_methods/" _self
        click SampleSeries href "/materials/sample_series/" _self
        click Sample href "/materials/samples/" _self