11 - The Wikidot Data Model
nav_first.pngFirst: design:1
1 - Rate Module
Edited: 29 Apr 2012 00:01 by: James Kanjo
Comments: 21
Tags:
nav_prev.pngPrevious: design:10
10 - Cross-site includes (CSI)
Edited: 11 Nov 2009 11:52 by: Steven Heynderickx
Comments: 29
Tags:
Last: design:32
32 - Parenthood Module
Edited: 11 Nov 2009 21:47 by: Steven Heynderickx
Comments: 7
Tags:
nav_last.png
Next: design:12
12 - ListPages Improvements
Edited: 11 Nov 2009 15:03 by: Steven Heynderickx
Comments: 5
Tags:
nav_next.png

11 - The Wikidot Data Model
Created on 15 Sep 2009 12:12
By pieterh

rating: +3+x


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
      • Member


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

Use cases:

  • File management


Member - [[module ListMembers ...]]

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

Use cases:

  • User-space membership management tools

Comments: 4

Add a New Comment