The Wikidot Data Model
nav_first.pngFirst: thread:131
HTML Block
Edited: 11 Oct 2012 12:06 by: James Kanjo
Comments: 0
Tags:
nav_prev.pngPrevious: thread:126
Data Forms
Edited: 04 Jun 2010 15:03 by: leiger
Comments: 5
Tags:
Last: thread:112
Image Module
Edited: 12 Nov 2009 12:22 by: pieterh
Comments: 0
Tags:
nav_last.png
Next: thread:352
Non-Existing Page Template
Edited: 20 Apr 2010 12:45 by: James Kanjo
Comments: 6
Tags:
nav_next.png

Steven HeynderickxSteven Heynderickx wrote on 10 Nov 2009 15:45

Originally suggested by pieterhpieterh on 15 Sep 2009.


This is an analysis of the navigable data model that Wikidot site builders could in theory work with. The model consists of a hierarchy of objects. For each type of object we note typical properties of the object, as well as ways to select and order objects.

  • Cluster — a collection of sites
    • Site
      • Page
        • Revision
      • Comment
      • Tag
      • File
      • User


Cluster - [[module ListClusters ...]]

  • Properties: name, created_by, created_at, tags
  • Selection: created_at, tags
  • Ordering: any property
  • Container: owned by current user

Use cases:

  • User-space cluster management tools


Site - [[module ListSites ...]]

  • Properties: name, title, created_by, created_at, tags, deleted, pages, edits, members, quality, karma
  • Selection: created_by, created_at, tags, deleted, pages, edits, members, quality, karma
  • Ordering: name, created_by, created_at, karma
  • Container: owned by current user

Use cases:

  • Top rated sites
  • Feed of newly created sites
  • Feed of probably spam sites


Page - [[module ListPages ...]]

  • Properties: name, title, content, created_by, created_at, tags, category, parent, etc.
  • Selection: created_by, created_at, tags, category, parent, etc.
  • Ordering: name, created_by, parent, etc.
  • Container: current site


Comment - [[module ListComments ...]]

  • Properties: title, content, created_by, created_at, level, parent
  • Selection: created_by, created_at, tags, parent, etc.
  • Ordering: name, created_by, parent, etc.
  • Container: current site

Use cases:

  • Emulating the Comments module on a page.


Tag - [[module ListTags ...]]

  • Properties: name, parent (page), pages
  • Selection: parent, pages
  • Ordering: name, parent, pages
  • Container: current site

Use cases:

  • Custom formatting of tags in ListPages
  • Reporting on tag usage within a site


Revision - [[module ListRevisions ...]]

  • Properties: created_by, created_at, parent (page), description
  • Selection: created_by, created_at, parent (page)
  • Ordering: created_at
  • Container: current page

Use cases:

  • Custom history pages


File - [[module ListFiles ...]]

  • Properties: created_by, created_at, parent (page), description, type, downloads
  • Selection: created_by, created_at, parent (page), image
  • Ordering: created_at, name, size, parent (page), type, downloads
  • Container: current site
  • Meta data: abstract, author, date created, license, etc.

Use cases:

  • File management
  • Text/document database



User - [[module ListUsers ...]]

  • Properties: name, userid, role, joined_at
  • Selection: userid, role, joined_at
  • Ordering: name, userid, role, joined_at
  • Container: current site

This would cover all contributors and participants in a site: contributor, editor, member, moderator, admin, owner.

Use cases:

  • User-space membership management tools

Start a new sub-thread

We discourage direct comments on this thread: to discuss it, please start a sub-thread.

Unless otherwise stated, the content of this page is licensed under Creative Commons Attribution-ShareAlike 3.0 License