.pk D_Number a_ID_ ref.nn E_Mantis_bug_table a_bug_id . D_str_250 a_title . D_str_250 a_description . D_str_250 a_diskfile . D_str_250 a_filename . D_str_250 a_folder . D_Number a_filesize . D_str_250 a_file_type . D_Timestamp a_date_added . D_BLOB a_contentE_Mantis_bug_history_table . . SQL
.pk D_Number a_ID_ ref. E_Mantis_user_table a_user_id ref.nn E_Mantis_bug_table a_bug_id . D_Timestamp a_date_modified . D_str_32 a_field_name . D_str_128 a_old_value . D_str_128 a_new_value . D_Number a_Type_E_Mantis_bug_monitor_table . . SQL
ref.pk E_Mantis_user_table a_user_id ref.pk E_Mantis_bug_table a_bug_idE_Mantis_bug_relationship_table . . SQL
.pk D_Number a_ID_ ref.nn E_Mantis_bug_table a_source_bug_id ref. E_Mantis_bug_table a_destination_bug_id . D_Number a_relationship_typeE_Mantis_bug_table . . SQL
.pk D_Number a_ID_ . D_Number a_project_id ref. E_Mantis_user_table a_reporter_id ref. E_Mantis_user_table a_handler_id ref. E_Mantis_bug_table a_duplicate_id . D_Number a_priority . D_Number a_severity . D_Number a_reproducibility . D_Number a_status . D_Number a_resolution . D_Number a_projection . D_str_64 a_category . D_Timestamp a_date_submitted . D_Timestamp a_last_updated . D_Number a_eta . D_Number a_bug_text_id . D_str_32 a_os . D_str_32 a_os_build . D_str_32 a_platform . D_str_64 a_version . D_str_64 a_fixed_in_version . D_str_32 a_build . D_Number a_profile_id . D_Number a_view_state . D_str_128 a_summary .nn D_Number a_sponsorship_total . D_Number a_sticky <-- is target of: E_Mantis_sponsorship_table.bug_id <-- is target of: E_Mantis_custom_field_string_table.bug_id <-- is target of: E_Mantis_bugnote_table.bug_id <-- is target of: E_Mantis_bug_table.duplicate_id <-- is target of: E_Mantis_bug_relationship_table.destination_bug_id <-- is target of: E_Mantis_bug_relationship_table.source_bug_id <-- is target of: E_Mantis_bug_monitor_table.bug_id <-- is target of: E_Mantis_bug_history_table.bug_id <-- is target of: E_Mantis_bug_file_table.bug_idE_Mantis_bug_text_table . . SQL
.pk D_Number a_ID_ . D_str_4000 a_description . D_str_4000 a_steps_to_reproduce . D_str_4000 a_additional_informationE_Mantis_bugnote_table . . SQL
.pk D_Number a_ID_ ref.nn E_Mantis_bug_table a_bug_id ref. E_Mantis_user_table a_reporter_id . D_Number a_bugnote_text_id . D_Number a_view_state . D_Timestamp a_date_submitted . D_Timestamp a_last_modified . D_Number a_note_type . D_str_250 a_note_attrE_Mantis_bugnote_text_table . . SQL
.pk D_Number a_ID_ . D_str_4000 a_noteE_Mantis_config_table . . SQL
.pk D_str_64 a_config_id .pk D_Number a_project_id ref.pk E_Mantis_user_table a_user_id . D_Number a_access_reqd . D_Number a_Type_ . D_str_4000 a_valueE_Mantis_custom_field_project_table . . SQL
.pk D_Number a_field_id .pk D_Number a_project_id . D_Number a_sequenceE_Mantis_custom_field_string_table . . SQL
.pk D_Number a_field_id ref.pk E_Mantis_bug_table a_bug_id . D_str_255 a_valueE_Mantis_custom_field_table . . SQL
.pk D_Number a_ID_ .nn D_str_64 a_name . D_Number a_Type_ . D_str_255 a_possible_values . D_str_255 a_default_value . D_str_255 a_valid_regexp . D_Number a_access_level_r . D_Number a_access_level_rw . D_Number a_length_min . D_Number a_length_max . D_Number a_advanced . D_Number a_require_report . D_Number a_require_update . D_Number a_display_report . D_Number a_display_update . D_Number a_require_resolved . D_Number a_display_resolved . D_Number a_display_closed . D_Number a_require_closedE_Mantis_filters_table . . SQL
.pk D_Number a_ID_ ref. E_Mantis_user_table a_user_id . D_Number a_project_id . D_Number a_is_public . D_str_64 a_name . D_str_4000 a_filter_stringE_Mantis_news_table . . SQL
.pk D_Number a_ID_ . D_Number a_project_id . D_Number a_poster_id . D_Timestamp a_date_posted . D_Timestamp a_last_modified . D_Number a_view_state . D_Number a_announcement . D_str_64 a_headline . D_str_4000 a_bodyE_Mantis_project_category_table . . SQL
.pk D_Number a_project_id .pk D_str_64 a_category ref. E_Mantis_user_table a_user_idE_Mantis_project_file_table . . SQL
.pk D_Number a_ID_ . D_Number a_project_id . D_str_250 a_title . D_str_250 a_description . D_str_250 a_diskfile . D_str_250 a_filename . D_str_250 a_folder . D_Number a_filesize . D_str_250 a_file_type . D_Timestamp a_date_added . D_BLOB a_contentE_Mantis_project_hierarchy_table . . SQL
.pk D_Number a_child_id . D_Number a_parent_idE_Mantis_project_table . . SQL
.pk D_Number a_ID_ .nn D_str_128 a_name . D_Number a_status . D_Number a_enabled . D_Number a_view_state . D_Number a_access_min . D_str_250 a_file_path . D_str_4000 a_descriptionE_Mantis_project_user_list_table . . SQL
.pk D_Number a_project_id ref.pk E_Mantis_user_table a_user_id . D_Number a_access_levelE_Mantis_project_version_table . . SQL
.pk D_Number a_ID_ .nn D_Number a_project_id .nn D_str_64 a_version . D_Timestamp a_date_order . D_str_4000 a_description . D_Number a_releasedE_Mantis_sponsorship_table . . SQL
.pk D_Number a_ID_ ref.nn E_Mantis_bug_table a_bug_id ref. E_Mantis_user_table a_user_id . D_Number a_amount . D_str_128 a_logo . D_str_128 a_url . D_Number a_paid . D_Timestamp a_date_submitted . D_Timestamp a_last_updatedE_Mantis_tokens_table . . SQL
.pk D_Number a_ID_ . D_Number a_owner . D_Number a_Type_ . D_Timestamp a_timestamp . D_Timestamp a_expiry . D_str_4000 a_valueE_Mantis_user_pref_table . . SQL
.pk D_Number a_ID_ ref. E_Mantis_user_table a_user_id . D_Number a_project_id . D_Number a_default_profile . D_Number a_default_project . D_Number a_advanced_report . D_Number a_advanced_view . D_Number a_advanced_update . D_Number a_refresh_delay . D_Number a_redirect_delay . D_str_4 a_bugnote_order . D_Number a_email_on_new . D_Number a_email_on_assigned . D_Number a_email_on_feedback . D_Number a_email_on_resolved . D_Number a_email_on_closed . D_Number a_email_on_reopened . D_Number a_email_on_bugnote . D_Number a_email_on_status . D_Number a_email_on_priority . D_Number a_email_on_priority_min_severity . D_Number a_email_on_status_min_severity . D_Number a_email_on_bugnote_min_severity . D_Number a_email_on_reopened_min_severity . D_Number a_email_on_closed_min_severity . D_Number a_email_on_resolved_min_severity . D_Number a_email_on_feedback_min_severity . D_Number a_email_on_assigned_min_severity . D_Number a_email_on_new_min_severity . D_Number a_email_bugnote_limit . D_str_32 a_languageE_Mantis_user_print_pref_table . . SQL
ref.pk E_Mantis_user_table a_user_id . D_str_27 a_print_prefE_Mantis_user_profile_table . . SQL
.pk D_Number a_ID_ ref. E_Mantis_user_table a_user_id . D_str_32 a_platform . D_str_32 a_os . D_str_32 a_os_build . D_str_4000 a_descriptionE_Mantis_user_table . . SQL
.pk D_Number a_ID_ . D_str_32 a_username . D_str_64 a_realname . D_str_64 a_email . D_str_32 a_Password_ . D_Timestamp a_date_created . D_Timestamp a_last_visit . D_Number a_enabled . D_Number a_protected . D_Number a_access_level . D_Number a_login_count . D_Number a_lost_password_request_count . D_Number a_failed_login_count .nn D_str_64 a_cookie_string <-- is target of: E_Mantis_user_profile_table.user_id <-- is target of: E_Mantis_user_print_pref_table.user_id <-- is target of: E_Mantis_user_pref_table.user_id <-- is target of: E_Mantis_sponsorship_table.user_id <-- is target of: E_Mantis_project_user_list_table.user_id <-- is target of: E_Mantis_project_category_table.user_id <-- is target of: E_Mantis_filters_table.user_id <-- is target of: E_Mantis_config_table.user_id <-- is target of: E_Mantis_bugnote_table.reporter_id <-- is target of: E_Mantis_bug_table.handler_id <-- is target of: E_Mantis_bug_table.reporter_id <-- is target of: E_Mantis_bug_monitor_table.user_id <-- is target of: E_Mantis_bug_history_table.user_id end of o.mantis.er1 ERDHow to read the ERD above: Prefixes E_, R_, S_, A_, e_ in front of a name show what kind of concept the name x in question is denoting: E_x is an entity class. Note however: We write e_x instead of E_x where we want to say that E_x is occurring in the role of a superclass. If a class E_x1 is a specialization of another class E_x, i.e. if each instance of E_x1 can be also be seen as an instance of type E_x, then e_x is meant to be the group of all attributes of E_x1 defined in E_x already (the set of all inherited attributes). R_x is entity class E_x representing entity associations that are not of cardinality 1:n or n:1 (they need not even be binary relations). A_x is an attribute of an entity class, same as a_x() in C++ or Java. S_x is a complex attribute (i.e. a set of attributes), same as a_x() in C++ or Java. We write a_x where we do not care to see whether attribute x is complex or not. D_x is a domain, i.e. an attribute type. pk says that this attribute is part of the entity's primary key. nn says that this is a NOT NULL attribute. c: is to mark core entity types (types that do not specialize any other type). Types not marked as core entity types inherit structure from their - always unique - direct supertype). A Core Type is an entity type that is not a specialization of another entity type in the model shown. : Specialisation hierarchies are shown in this form: ------------------------------------------------- | E_x3 | e_x1 | e_x2 . E_x3 structure not inherited means: E_x3 specializes E_x2 (so that all structure of E_x2 is also structure of E_x3). E_x3 is a direct subtype of E_x2, and E_x2 is a direct subtype of E_x1. : Entity Relationship Structure is shown as follows: ------------------------------------------------- : E_x1 ->> set of E_x2 a_Name means: Given any object x1 of type E_x1, x1.a_Name() is an instance of a List h_Name defined in the ERD (the Name can be seen as describing the role of the list members in relation to x1). : E_x1 . E_x2 x3 (to be read as: <-- E_x2.x3 ) means: Each value E_x1.A_x3 is primary key of an entity of type E_x2, so that ( E_x1, E_x2 ) is a relation of cardinality (m:1) or (1:1). : E_x1 . D_x2 x3 . S_x2 x3 means: Each value E_x1.A_x3 is an attribute of type D_x2 (resp. S_x2, S_x2 a set of attributes such that records of type S_x2 make sense in themselves). R_x1 is a type E_x1 that can be interpreted as a relationship type of a specific dimension n, 2 <= n. Note: Classes E_x without relation structure --> or <<- tend to be superfluous. They form a self-contained ERD model which quite often does not make sense in isolation. Here is an example: Classes meant to be enumerations such as e.g. : E_Category . A_Value D_ValueName . A_Semantics D_Comment . A_ObsoleteSince D_Date need usually not exist in form of a separate table. To model it in form of a domain D_Category together with an attribute A_ObsoleteSince in the table E_DomainValues would be better: : E_DomainValues . A_Domain D_DomainName . A_Value D_ValueName . A_Semantics D_Comment . A_ObsoleteSince D_Date To have such a table documenting the semantics of all the values of enumeration domains is recommended and definitely helpful (the fact that most developers do not create this table is really bad practice).
  |
        | Where Domain Types are used   Here you can see whether there are Domain Types no longer in use. |
BLOB :
. E_Mantis_bug_file_table . E_Mantis_project_file_table | | ||
Number :
. E_Mantis_bug_file_table . E_Mantis_bug_history_table . E_Mantis_bug_monitor_table . E_Mantis_bug_relationship_table . E_Mantis_bug_table . E_Mantis_bug_text_table . E_Mantis_bugnote_table . E_Mantis_bugnote_text_table . E_Mantis_config_table . E_Mantis_custom_field_project_table . E_Mantis_custom_field_string_table . E_Mantis_custom_field_table . E_Mantis_filters_table . E_Mantis_news_table . E_Mantis_project_category_table . E_Mantis_project_file_table . E_Mantis_project_hierarchy_table . E_Mantis_project_table . E_Mantis_project_user_list_table . E_Mantis_project_version_table . E_Mantis_sponsorship_table . E_Mantis_tokens_table . E_Mantis_user_pref_table . E_Mantis_user_print_pref_table . E_Mantis_user_profile_table . E_Mantis_user_table | | ||
Timestamp :
. E_Mantis_bug_file_table . E_Mantis_bug_history_table . E_Mantis_bug_table . E_Mantis_bugnote_table . E_Mantis_news_table . E_Mantis_project_file_table . E_Mantis_project_version_table . E_Mantis_sponsorship_table . E_Mantis_tokens_table . E_Mantis_user_table | | ||
str_128 :
. E_Mantis_bug_history_table . E_Mantis_bug_table . E_Mantis_project_table . E_Mantis_sponsorship_table | | ||
str_250 :
. E_Mantis_bug_file_table . E_Mantis_bugnote_table . E_Mantis_project_file_table . E_Mantis_project_table | | ||
str_255 :
. E_Mantis_custom_field_string_table . E_Mantis_custom_field_table | | ||
str_27 :
. E_Mantis_user_print_pref_table | | ||
str_32 :
. E_Mantis_bug_history_table . E_Mantis_bug_table . E_Mantis_user_pref_table . E_Mantis_user_profile_table . E_Mantis_user_table | | ||
str_4000 :
. E_Mantis_bug_text_table . E_Mantis_bugnote_text_table . E_Mantis_config_table . E_Mantis_filters_table . E_Mantis_news_table . E_Mantis_project_table . E_Mantis_project_version_table . E_Mantis_tokens_table . E_Mantis_user_profile_table | | ||
str_4 :
. E_Mantis_user_pref_table | | ||
str_64 :
. E_Mantis_bug_table . E_Mantis_config_table . E_Mantis_custom_field_table . E_Mantis_filters_table . E_Mantis_news_table . E_Mantis_project_category_table . E_Mantis_project_version_table . E_Mantis_user_table |