protected function trait_get_child_details() {
		$table = self::trait_get_child_database_table();

		if ($table === null) {
			return;
		}

		if (!isset($this->id) OR $this->id === null) {
			throw new \Exception('Could not fetch ' . $table . ' data: id not set');
		}

		$db = self::trait_get_database();
		$child_details = $db->get_row('SELECT * FROM ' . $db->quote_identifier($table) . ' WHERE ' . self::trait_get_parent_table_field_id() . '=?', [$this->id]);

		if ($child_details === null) {
			throw new \Exception('Could not fetch ' . $table . ' data: none found with id ' . $this->id);
		}

		$this->child_details = $child_details;
		$this->reset_dirty_fields();
	}