Parent and child companies #55
Labels
No labels
accessibility
authentication
breaking change
bug
documentation
enhancement
interface
internationalisation
observability
security
tier
1
tier
2
tier
3
tier/4
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Blocks
Reference
Postulo/postulo#55
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Observation
Why
Applications land at a subsidiary — a national arm, a brand, a studio somebody bought — and
the person applying knows perfectly well that three of them are one group. Postulo does
not: Insights counts three unrelated employers, a rejection from one says nothing about the
others, and searching for the group's name finds none of them.
Shape
parentonCompany, self-referential, owner-scoped like everythingelse. A tree rather than a graph: a company has at most one parent, which is what an
ownership structure is, and it keeps every query answerable.
with a sentence saying which link would close it, and depth is capped so a mistake cannot
produce a thousand-deep chain.
companies table can group by group; an application shows the group beside the company
when the two differ.
doing any of this.
keeps its tree.
P749 parent organization,P355 subsidiary) and #42 means many companies already carry a Wikidata identifier — sosuggest the parent is the natural follow-up, and deliberately not part of this. The
relation gets recorded by hand first.
Classification
Enhancement, for 0.3.0. Not breaking: one nullable field.
Depends on
Nothing. #42 only if the Wikidata suggestion is built, and this does not build it.
Open questions
Inheritance is a rule people then have to hold in their heads; showing the parent's name
is enough.
with no postings is a company with no postings, and one model is fewer than two.
Extended by #138, which keeps this issue's shape — one nullable self-referential
parent, a tree rather than a graph, cycles refused — and adds two things to it: aDepartmentbetween a company and its contacts (#137), and an application able to say which part of an employer it was aimed at.This issue is not superseded. The parent-and-child relation is useful on its own and is the piece Insights actually needs; the rest builds on it. Worth noting for whoever picks this up: the open question here about whether a group should be a thing of its own gets a second data point from that issue — a department is not a company with a parent, for the reasons set out there, which is an argument that the answer to question 2 stays no.
A company can now be part of another,
parentpointing at aCompanyon the same owner's list. Walking up gives the group; walking down gives the descendants, and both are bounded at ten so a cycle somebody makes in the database cannot hang a page. Saving refuses a company as its own parent, refuses a cycle by naming the company that would close it, and refuses a group deeper than ten. The picker leaves out the company itself and everything below it, so the cycle mostly cannot be typed either.Deleting a parent does not delete its children:
SET_NULLleaves them where they are, as companies in their own right, because a company nobody applied to going away must not take the ones they did apply to with it.The export carries the parent by name rather than by id — an id means nothing in another instance — and the import resolves those names in a second pass, after every company exists, so the order of the file does not decide what survives.
FORMAT_VERSIONis 5; every earlier format still imports.Shipped in
a3f6f20on0.3.0, withmainkept level.