Me: You decided some records in system A should be obsolete, but the records are tied to active user accounts on the website. Now, I have users emailing and asking why their profile’s last name field says “shell record - do not use.”

Stakeholder: Oh…can’t you stop those profiles from loading? Or redirect the users to the right record in system A? In system A, we set up a relationship between the shell record and the active one.

Me: 😵 Um, no and no. If I stop a user’s profile from on the website, that’s just going to cause more confusion. And the only way to identify those shell record is to look at the last name field, a text field, for that shell record wording. Also, the website uses an API to query data from system A by user id. Whatever record relationship you established isn’t reflected in the vendor’s API. The website can’t get the right record from system A if it doesn’t have the right user id.

  • 1
    And this is why you have separate identity and profile tables. Also when will people stop using value fields to indicate deprecation? Just add a nullable deletion date to your table if you can ever think of a scenario where they need to be removed without destroying data - which is to be expected about most tables containing business data.
  • 0
    @lbfalvy so tl:dr add a isDeleted column?
  • 1
    @lbfalvy Unfortunately system A is software from an outside vendor and it doesn’t allow extension like adding an isDeleted property. Stakeholder really messed things up because system A’s data is used in a lot of place.
  • 3
    @melezorus34 Nope, a nullable deletion date is more useful because it can also be used to eg. reinstate objects deleted after a given day. In business logic most data should be recoverable and timestamped.
  • 0
  • 2
    @lbfalvy @melezorus34
    "data will be completly removed automatically in 30 days"
  • 1
    @magicMirror add it to a queue table with the reason giver for a column
    ┐( ∵ )┌

    Idk possibilities are endless bcuz I am still a business-virgin.

    Also, lb's solution still fits your case perfectly
Add Comment