Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Association schema adjustment #1822

Draft
wants to merge 4 commits into
base: Development
Choose a base branch
from

Conversation

egbot
Copy link
Member

@egbot egbot commented Oct 31, 2024

  • Adjust schema to remove association record whenever either internal association is deleted. Current schema sets occidAssociate field to null when linked occurrence is deleted, thus resulting in non-informative orphaned associations.

Pull Request Checklist:

Pre-Approval

  • There is a description section in the pull request that details what the proposed changes do. It can be very brief if need be, but it ought to exist.
  • Hotfixes should be branched off of the master branch and squash and merged back into the master branch.
  • Features and backlog bugs should be merged into the Development branch, NOT master
  • All new text is preferably internationalized (i.e., no end-user-visible text is hard-coded on the PHP pages), and the spreadsheet tracking internationalizations has been updated either with a new row or with checkmarks to existing rows.
  • There are no linter errors
  • New features have responsive design (i.e., look aesthetically pleasing both full screen and with small or mobile screens)
  • Symbiota coding standards have been followed
  • If any files have been reformatted (e.g., by an autoformatter), the reformat is its own, separate commit in the PR
  • Comment which GitHub issue(s), if any does this PR address
  • If this PR makes any changes that would require additional configuration of any Symbiota portals outside of the files tracked in this repository, make sure that those changes are detailed in this document.

Post-Approval

  • It is the code author's responsibility to merge their own pull request after it has been approved
  • If this PR represents a merge into the Development branch, remember to use the squash & merge option
  • If this PR represents a merge from the Development branch into the master branch, remember to use the merge option
  • If this PR represents a hotfix into the master branch, a subsequent PR from master into Development should be made merge option (i.e., no squash).
  • If the dev team has agreed that this PR represents the last PR going into the Development branch before a tagged release (i.e., before an imminent merge into the master branch), make sure to notify the team and lock the Development branch to prevent accidental merges while QA takes place. Follow the release protocol here.
  • Don't forget to delete your feature branch upon merge. Ignore this step as required.

Thanks for contributing and keeping it clean!

- Adjust schema to remove association record whenever either internal association is deleted. Current schema sets occidAssociate field to null when linked occurrence is deleted, thus resulting in non-informative orphaned associations.
@egbot egbot requested a review from Atticus29 October 31, 2024 15:53
Copy link
Collaborator

@Atticus29 Atticus29 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'm a little confused. It seems like there's a mismatch between the description and the code.

The description

Adjust schema to remove association record whenever either internal association is deleted. Current schema sets occidAssociate field to null when linked occurrence is deleted, thus resulting in non-informative orphaned associations.

makes it sound like what is desired is to delete the association record if the occurrence corresponding to either occid or occidAssociate are deleted.

What I think would happen instead is that the user could no longer delete the occurrence, creating user, or editing user if the association exists, forcing the end user to have to delete the association first. Is this the desired behavior?

@egbot
Copy link
Member Author

egbot commented Nov 21, 2024

I'm a little confused. It seems like there's a mismatch between the description and the code.

The description

Adjust schema to remove association record whenever either internal association is deleted. Current schema sets occidAssociate field to null when linked occurrence is deleted, thus resulting in non-informative orphaned associations.

makes it sound like what is desired is to delete the association record if the occurrence corresponding to either occid or occidAssociate are deleted.

What I think would happen instead is that the user could no longer delete the occurrence, creating user, or editing user if the association exists, forcing the end user to have to delete the association first. Is this the desired behavior?

Yes, this PR is from prior to our last Dev meeting, where we decided that we would play it safer and restrict, but we also also realized that we needed to review the behaviors of the current controls, as well as the occurrence remapping tools. I'll switch this over to draft for now, until we reach an agreement on the best actions. However, within your dev environment, you probably want to change the FK to restrict, and delete the orphaned internal associations (null occidAssociate), which shouldn't exist nor be allowed.

@egbot egbot marked this pull request as draft November 21, 2024 20:16
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants