2.1 KiB
2.1 KiB
erDiagram
🌱Plant ||--o{ ↔️PlantGroup : "belongs to"
🪴Group ||--o{ ↔️PlantGroup : "contains"
🌱Plant }o--|| 🧬PlantSpecies : "is of"
🫳Action ||--o{ 📒ActionLog : "logged in"
🌱Plant ||--o{ 📒ActionLog : ""
🪴Group ||--o{ 📒ActionLog : ""
📋MaintenancePlan ||--o{ 📒ActionLog : "logged in"
📋MaintenancePlan ||--o{ 🗓️MaintenancePlanAction : "has"
🫳Action ||--o{ 🗓️MaintenancePlanAction : includes
🔧Tool ||--o{ ⚙️ToolAction : ""
🫳Action ||--o{ ⚙️ToolAction : ""
🔧Tool ||--o{ 💾ToolAttributeValue : "has attribute with value"
🏷️ToolAttribute ||--o{ 💾ToolAttributeValue : "has value"
%% Entities
🌱Plant {
int id
int species_id
string name
datetime date_acquired
}
🧬PlantSpecies {
int id
string name
string genus
string species
string cultivar
string variety
string authority
}
🪴Group {
int id
string name
}
↔️PlantGroup {
int id
int group_id
int plant_id
}
🫳Action {
int id
string name
string description
}
📒ActionLog {
int id
int action_id
int plant_id
int group_id
int plan_id
string notes
}
📋MaintenancePlan {
int id
int plant_id
int group_id
int maintenance_plan_action_id
}
🗓️MaintenancePlanAction {
int id
int maintenance_plan_id
int action_id
string schedule
}
🔧Tool {
int id
string name
string description
}
⚙️ToolAction {
int id
int tool_id
int action_id
}
🏷️ToolAttribute {
int id
string name
string description
}
💾ToolAttributeValue {
int id
int tool_attribute_id
int tool_id
string value_string
float value_number
}