Design+database schema


common structure: all tables have an id field-- auto increment primary key


primary tables

  • cards
    • name
    • key
    • type   (sti)
    • namespace_id  (namespace)
    • language_id (language)
    • translation_id (card)
    • trunk_id   (card)
    • tag_id     (card)
    • current_revision_id  (revision)
    • extension_id, extension_type  (any)
    • reader_id, reader_type   (user or role)
    • writer_id, writer_type    (user or role)
  • revisions
    • card_id  (card)
    • created_at
    • author_id (user)
    • content
  • events
    • type  (sti)
    • ...
  • references
    • type  (sti?)
    • referring_card_id
    • referenced_card_name

extension tables

  • users
  • roles
  • cardegories
  • languages
  • namespaces

messaging tables


  • messages
    • to_id, to_type   (user or guest)
    • from_id, from_type  (user or guest)
    • message
    • created_at
  • guests
    • ip_address
    • name
  • friends
    • friend1_id  (user) 
    • friend2_id  (user)


other tables

  • roles_users --track which users belong to which groups
  • config         -- use for configuration info (currently in wagn.rb)
  • sessions      -- used by rails to store session info
  • schema_info  --used by rails to manage migrations