]po[ Forum Topic

Forums are a way to organize discussions about relevant project issues between project members.  ]project-open[ forums implement the traditional discussion forum, but also utilizes the forum for task assignation, incident notifications and general news postings.  

 

Forum Fields

 

  • Subject
  • Posted In
  • Posted By
  • Status
  • Posting Date
  • Priority
  • Assigned To
  • Due Date
  • Visible For
  • Receive Updates
  • Task Body
  • Access Permissions

im_forum_topics

The datastructures for ]po[ Forums really look like the ones for a mail reader with topics (the messages) and a mapping between topics and users (im_forum_topic_user_map) to store whether a user has read a topic or filed the topic in one of his folders.  

create table im_forum_topics (
        -- administrative information
        topic_id        integer
                        constraint im_forum_topics_pk primary key,
        topic_name      varchar(200),
        topic_path      varchar(200),
        object_id       integer not null
                        constraint im_forum_topics_object_fk
                        references acs_objects,
        parent_id       integer
                        constraint im_forum_topics_parent_fk
                        references im_forum_topics,
        topic_type_id   integer not null
                        constraint im_forum_topics_type_fk
                        references im_categories,
        topic_status_id integer
                        constraint im_forum_topics_status_fk
                        references im_categories,
        posting_date    date,
        owner_id        integer not null
                        constraint im_forum_topics_owner_fk
                        references users,
        scope           varchar(20) default 'group'
                        constraint im_forum_topics_scope_ck
                        check (scope in ('pm', 'group','public','client','staff','not_client')),
        -- message content
        subject         varchar(200) not null,
        message         clob,
        -- task and incident specific fields
        priority        number(1),
        due_date        date,
        asignee_id      integer
                        constraint im_forum_topics_asignee_fk
                        references users
);

create table im_forum_topic_user_map (
        topic_id        integer
                        constraint im_forum_topics_um_topic_fk
                        references im_forum_topics,
        user_id         integer
                        constraint im_forum_topics_um_user_fk
                        references users,
        -- read_p in ('f' or NULL) indicates "New" items
        read_p          char(1) default 't'
                        constraint im_forum_topics_um_read_ck
                        check (read_p in ('t','f')),
        -- folder_id in (0 or NULL) indicates "Inbox" items
        -- folder_id = 1 indicates "Deleted" items
        -- folder_id for users start with 10
        folder_id       integer default 0
                        constraint im_forum_topics_um_folder_fk
                        references im_forum_folders,
        receive_updates varchar(20) default 'major'
                        constraint im_forum_topics_um_rec_ck check (
                        receive_updates in ('all','none','major')),
        constraint im_forum_topics_um_rec_pk
        primary key (topic_id, user_id)
);

create table im_forum_folders (
        folder_id       integer
                        constraint im_forum_folders_pk
                        primary key,
        user_id         integer
                        constraint im_forum_folders_user_fk
                        references users,
        parent_id       integer
                        constraint im_forum_folders_parent_fk
                        references im_forum_folders,
        folder_name     varchar(200)
);

 

References

 

Related Help

Related Tutorials

Related Object Types

Related Packages

Related Modules

  Contact Us
  Project Open Business Solutions S.L.

Calle Aprestadora 19, 12o-2a

08902 Hospitalet de Llobregat (Barcelona)

Spain

 Tel Europe: +34 609 953 751
 Tel US: +1 415 200 2465
 Mail: info@project-open.com