Hi again.
I've been play around with database construction from dictionaries, and have come across some issues, mainly with variant. I know that this is probably known, but just flagging it explicitly
Variant is used in many categories, but they don't have enough keys to properly refer to a particular variant, as variant is keyed on variant, diffrn_id, and entry_id.
The following are all category keys that are linked to _variant.variant, but can't find the right one, as we're missing diffrn_id and entry_id.
! FK: '_array_data.variant' -> '_variant.variant': partial FK to 'variant' — covers ['variant'] of PKs=['variant', 'diffrn_id', 'entry_id']
! FK: '_array_element_size.variant' -> '_variant.variant': partial FK to 'variant' — covers ['variant'] of PKs=['variant', 'diffrn_id', 'entry_id']
! FK: '_array_intensities.variant' -> '_variant.variant': partial FK to 'variant' — covers ['variant'] of PKs=['variant', 'diffrn_id', 'entry_id']
! FK: '_array_structure.variant' -> '_variant.variant': partial FK to 'variant' — covers ['variant'] of PKs=['variant', 'diffrn_id', 'entry_id']
! FK: '_array_structure_list.variant' -> '_variant.variant': partial FK to 'variant' — covers ['variant'] of PKs=['variant', 'diffrn_id', 'entry_id']
! FK: '_array_structure_list_axis.variant' -> '_variant.variant': partial FK to 'variant' — covers ['variant'] of PKs=['variant', 'diffrn_id', 'entry_id']
! FK: '_axis.variant' -> '_variant.variant': partial FK to 'variant' — covers ['variant'] of PKs=['variant', 'diffrn_id', 'entry_id']
! FK: '_diffrn_data_frame.variant' -> '_variant.variant': partial FK to 'variant' — covers ['variant'] of PKs=['variant', 'diffrn_id', 'entry_id']
! FK: '_diffrn_detector.variant' -> '_variant.variant': partial FK to 'variant' — covers ['variant'] of PKs=['variant', 'diffrn_id', 'entry_id']
! FK: '_diffrn_detector_axis.variant' -> '_variant.variant': partial FK to 'variant' — covers ['variant'] of PKs=['variant', 'diffrn_id', 'entry_id']
! FK: '_diffrn_detector_element.variant' -> '_variant.variant': partial FK to 'variant' — covers ['variant'] of PKs=['variant', 'diffrn_id', 'entry_id']
! FK: '_diffrn_measurement.variant' -> '_variant.variant': partial FK to 'variant' — covers ['variant'] of PKs=['variant', 'diffrn_id', 'entry_id']
! FK: '_diffrn_measurement_axis.variant' -> '_variant.variant': partial FK to 'variant' — covers ['variant'] of PKs=['variant', 'diffrn_id', 'entry_id']
! FK: '_diffrn_radiation.variant' -> '_variant.variant': partial FK to 'variant' — covers ['variant'] of PKs=['variant', 'diffrn_id', 'entry_id']
! FK: '_diffrn_refln.variant' -> '_variant.variant': partial FK to 'variant' — covers ['variant'] of PKs=['variant', 'diffrn_id', 'entry_id']
! FK: '_diffrn_scan.variant' -> '_variant.variant': partial FK to 'variant' — covers ['variant'] of PKs=['variant', 'diffrn_id', 'entry_id']
! FK: '_diffrn_scan_axis.variant' -> '_variant.variant': partial FK to 'variant' — covers ['variant'] of PKs=['variant', 'diffrn_id', 'entry_id']
! FK: '_diffrn_scan_collection.variant' -> '_variant.variant': partial FK to 'variant' — covers ['variant'] of PKs=['variant', 'diffrn_id', 'entry_id']
! FK: '_diffrn_scan_frame.variant' -> '_variant.variant': partial FK to 'variant' — covers ['variant'] of PKs=['variant', 'diffrn_id', 'entry_id']
! FK: '_diffrn_scan_frame_axis.variant' -> '_variant.variant': partial FK to 'variant' — covers ['variant'] of PKs=['variant', 'diffrn_id', 'entry_id']
! FK: '_diffrn_scan_frame_monitor.variant' -> '_variant.variant': partial FK to 'variant' — covers ['variant'] of PKs=['variant', 'diffrn_id', 'entry_id']
! FK: '_map.variant' -> '_variant.variant': partial FK to 'variant' — covers ['variant'] of PKs=['variant', 'diffrn_id', 'entry_id']
! FK: '_map_segment.variant' -> '_variant.variant': partial FK to 'variant' — covers ['variant'] of PKs=['variant', 'diffrn_id', 'entry_id']
additionally, _entry.id is used in MAP, and VARIANT, but is never defined?
There are other underspecified keys:
! FK: '_array_element_size.index' -> '_array_structure_list.index' : partial FK to 'array_structure_list' — covers ['index'] of PKs=['array_id', 'index', 'variant']
! FK: '_array_intensities.binary_id' -> '_array_data.binary_id' : partial FK to 'array_data' — covers ['binary_id'] of PKs=['array_id', 'binary_id', 'variant']
! FK: '_array_structure_list_axis.axis_id' -> '_axis.id' : partial FK to 'axis' — covers ['id'] of PKs=['id', 'equipment', 'variant']
! FK: '_array_structure_list_section.index' -> '_array_structure_list.index' : partial FK to 'array_structure_list' — covers ['index'] of PKs=['array_id', 'index', 'variant']
! FK: '_axis.depends_on' -> '_axis.id' : partial FK to 'axis' — covers ['id'] of PKs=['id', 'equipment', 'variant']
! FK: '_diffrn_data_frame.binary_id' -> '_array_data.binary_id' : partial FK to 'array_data' — covers ['binary_id'] of PKs=['array_id', 'binary_id', 'variant']
! FK: '_diffrn_data_frame.array_section_id' -> '_array_structure_list_section.id': partial FK to 'array_structure_list_section' — covers ['id'] of PKs=['id', 'array_id', 'index', 'variant']
! FK: '_diffrn_data_frame.detector_element_id' -> '_diffrn_detector_element.id' : partial FK to 'diffrn_detector_element' — covers ['id'] of PKs=['id', 'detector_id', 'variant']
! FK: '_diffrn_detector_axis.axis_id' -> '_axis.id' : partial FK to 'axis' — covers ['id'] of PKs=['id', 'equipment', 'variant']
! FK: '_diffrn_detector_axis.detector_id' -> '_diffrn_detector.id' : partial FK to 'diffrn_detector' — covers ['id'] of PKs=['diffrn_id', 'id', 'variant']
! FK: '_diffrn_measurement_axis.axis_id' -> '_axis.id' : partial FK to 'axis' — covers ['id'] of PKs=['id', 'equipment', 'variant']
! FK: '_diffrn_measurement_axis.measurement_device' -> '_diffrn_measurement.device' : partial FK to 'diffrn_measurement' — covers ['device_class', 'id'] of PKs=['device_class', 'diffrn_id', 'id', 'variant']
! FK: '_diffrn_measurement_axis.measurement_id' -> '_diffrn_measurement.id' : partial FK to 'diffrn_measurement' — covers ['device_class', 'id'] of PKs=['device_class', 'diffrn_id', 'id', 'variant']
! FK: '_diffrn_refln.frame_id' -> '_diffrn_data_frame.id' : partial FK to 'diffrn_data_frame' — covers ['id'] of PKs=['id', 'detector_element_id', 'variant']
! FK: '_diffrn_scan_axis.axis_id' -> '_axis.id' : partial FK to 'axis' — covers ['id'] of PKs=['id', 'equipment', 'variant']
! FK: '_diffrn_scan_frame.frame_id' -> '_diffrn_data_frame.id' : partial FK to 'diffrn_data_frame' — covers ['id'] of PKs=['id', 'detector_element_id', 'variant']
! FK: '_diffrn_scan_frame_axis.axis_id' -> '_axis.id' : partial FK to 'axis' — covers ['id'] of PKs=['id', 'equipment', 'variant']
! FK: '_diffrn_scan_frame_axis.frame_id' -> '_diffrn_data_frame.id' : partial FK to 'diffrn_data_frame' — covers ['id'] of PKs=['id', 'detector_element_id', 'variant']
! FK: '_diffrn_scan_frame_monitor.frame_id' -> '_diffrn_data_frame.id' : partial FK to 'diffrn_data_frame' — covers ['id'] of PKs=['id', 'detector_element_id', 'variant']
! FK: '_diffrn_scan_frame_monitor.detector_id' -> '_diffrn_detector.id' : partial FK to 'diffrn_detector' — covers ['id'] of PKs=['diffrn_id', 'id', 'variant']
! FK: '_map_segment.array_section_id' -> '_array_structure_list_section.id': partial FK to 'array_structure_list_section' — covers ['id'] of PKs=['id', 'array_id', 'index', 'variant']
! FK: '_map_segment.id' -> '_map.id' : partial FK to 'map' — covers ['id'] of PKs=['id', 'diffrn_id', 'entry_id', 'variant']
and I don't know if this one matters: a part of the primary key of array_structure_list_axis, which is also a foriegn key to array_structure_list, doesn't point to the primary key of that category.
! FK: '_array_structure_list_axis.axis_set_id' -> '_array_structure_list.axis_set_id': target column 'axis_set_id' is not a PK of 'array_structure_list' (PKs=['array_id', 'index', 'variant'])
Hi again.
I've been play around with database construction from dictionaries, and have come across some issues, mainly with
variant. I know that this is probably known, but just flagging it explicitlyVariantis used in many categories, but they don't have enough keys to properly refer to a particular variant, asvariantis keyed onvariant,diffrn_id, andentry_id.The following are all category keys that are linked to
_variant.variant, but can't find the right one, as we're missingdiffrn_idandentry_id.additionally,
_entry.idis used inMAP, andVARIANT, but is never defined?There are other underspecified keys:
and I don't know if this one matters: a part of the primary key of
array_structure_list_axis, which is also a foriegn key toarray_structure_list, doesn't point to the primary key of that category.