Re: Ordered Hierarchies.
Dmitry Ruban <[email protected]> Fri, 19 Jul 2019 08:58:45 +1200
| Newsgroups | gmane.comp.db.postgresql.sql |
|---|---|
| Message-ID | <CANxPN9jOmn7G=JcExP+4XBWa21xkDHy6R4eL6oSbKJJ+knK2cw@mail.gmail.com> |
Hi, There's an approach to store such hierarchy in relational db, have a look https://en.m.wikipedia.org/wiki/Nested_set_model I think it covers your usecases Cheers Sent from phone On Thu, 18 Jul 2019, 14:46 Tim Uckun, <[email protected]> wrote: > Hi all. > > I have read articles about handling hierarchies in databases but none of > them deal with how to keep order in the hierarchy. For example take a > typical outline. > > 1 > 1.1 > 1.1.1 > 1.1.2 > 1.2 > 2 > > etc. > > In this scenario the following actions are common. > > 1. move the item up. 1.1.2 becomes 1.1.1 and 1.1.1 becomes 1.1.2 > 2 Move the item down. The opposite of above. > 3. Move the item left. 1.1.2 becomes 1.2 and 1.2 becomes 1.3 and on down > the 1.X list. > 4. Move the item right. 1.2. becomes 1.1.3 > 5. Arbitrarily move an item into a hierarchy. In this case the item > becomes the highest numbered child under the target parent and all it's > previous peers get renumbered. > 6. Arbitrary insert item into a hierarcy. It becomes the highest numbered > child in the target parent. > 7. Delete an item. This would renumber all peers in the parent greater > it's own rank. > > In addition there are all the normal access patterns of course. > > Has anybody ever done anything like this or read an article about doing > something like this in an efficient way? > > > I should also add that there are lots of more complicated actions one > could take based on attributes of the nodes such as inheriting from the > parent nodes some attributes or checking constraints based on parentage etc. > > >