You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

6681 lines
259 KiB

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

# This file is auto-generated from the current state of the database. Instead
# of editing this file, please use the migrations feature of Active Record to
# incrementally modify your database, and then regenerate this schema definition.
#
# Note that this schema.rb definition is the authoritative source for your
# database schema. If you need to create the application database on another
# system, you should be using db:schema:load, not running all the migrations
# from scratch. The latter is a flawed and unsustainable approach (the more migrations
# you'll amass, the slower it'll run and the greater likelihood for issues).
#
# It's strongly recommended that you check this file into your version control system.
ActiveRecord::Schema.define(version: 2020_06_09_012340) do
create_table "activities", id: :integer, options: "ENGINE=InnoDB DEFAULT CHARSET=utf8", force: :cascade do |t|
t.integer "act_id", null: false
t.string "act_type", null: false
t.integer "user_id", null: false
t.integer "activity_container_id"
t.string "activity_container_type", default: ""
t.datetime "created_at"
t.index ["act_id", "act_type"], name: "index_activities_on_act_id_and_act_type"
t.index ["user_id", "act_type"], name: "index_activities_on_user_id_and_act_type"
t.index ["user_id"], name: "index_activities_on_user_id"
end
create_table "activity_notifies", id: :integer, options: "ENGINE=InnoDB DEFAULT CHARSET=utf8", force: :cascade do |t|
t.integer "activity_container_id"
t.string "activity_container_type"
t.integer "activity_id"
t.string "activity_type"
t.integer "notify_to"
t.datetime "created_on"
t.integer "is_read"
t.index ["activity_container_id", "activity_container_type"], name: "index_an_activity_container_id"
t.index ["created_on"], name: "index_an_created_on"
t.index ["notify_to"], name: "index_an_notify_to"
end
create_table "api_keys", id: :integer, options: "ENGINE=InnoDB DEFAULT CHARSET=utf8", force: :cascade do |t|
t.string "access_token"
t.datetime "expires_at"
t.integer "user_id"
t.boolean "active", default: true
t.datetime "created_at", null: false
t.datetime "updated_at", null: false
t.index ["access_token"], name: "index_api_keys_on_access_token"
t.index ["user_id"], name: "index_api_keys_on_user_id"
end
create_table "applied_contests", id: :integer, options: "ENGINE=InnoDB DEFAULT CHARSET=utf8", force: :cascade do |t|
t.integer "contest_id"
t.integer "user_id"
t.string "role"
t.integer "status"
t.datetime "created_at", null: false
t.datetime "updated_at", null: false
t.index ["contest_id"], name: "index_applied_contests_on_contest_id"
t.index ["user_id"], name: "index_applied_contests_on_user_id"
end
create_table "applied_messages", id: :integer, options: "ENGINE=InnoDB DEFAULT CHARSET=utf8", force: :cascade do |t|
t.integer "user_id"
t.integer "applied_id"
t.string "applied_type"
t.integer "viewed", default: 0
t.integer "status", default: 0
t.datetime "created_at", null: false
t.datetime "updated_at", null: false
t.string "name"
t.integer "applied_user_id"
t.integer "role"
t.integer "project_id"
end
create_table "applied_projects", id: :integer, options: "ENGINE=InnoDB DEFAULT CHARSET=utf8", force: :cascade do |t|
t.integer "project_id", null: false
t.integer "user_id", null: false
t.integer "role", default: 0
t.integer "status", default: 0
end
create_table "apply_actions", id: :integer, options: "ENGINE=InnoDB DEFAULT CHARSET=utf8", force: :cascade do |t|
t.integer "user_id"
t.string "reason"
t.integer "container_id"
t.string "container_type"
t.integer "dealer_id"
t.datetime "created_at", null: false
t.datetime "updated_at", null: false
t.integer "status", limit: 1, default: 0
t.text "apply_reason"
t.boolean "noticed", default: false
t.string "ip_addr"
t.string "reject_description"
t.index ["user_id"], name: "index_apply_actions_on_user_id"
end
create_table "apply_add_departments", id: :integer, options: "ENGINE=InnoDB DEFAULT CHARSET=utf8", force: :cascade do |t|
t.string "name"
t.integer "department_id"
t.integer "school_id"
t.text "remarks"
t.integer "user_id"
t.integer "status"
t.datetime "created_at", null: false
t.datetime "updated_at", null: false
t.index ["department_id"], name: "index_apply_add_departments_on_department_id"
t.index ["school_id"], name: "index_apply_add_departments_on_school_id"
t.index ["user_id"], name: "index_apply_add_departments_on_user_id"
end
create_table "apply_add_schools", id: :integer, options: "ENGINE=InnoDB DEFAULT CHARSET=utf8", force: :cascade do |t|
t.string "name"
t.string "province"
t.string "city"
t.string "address"
t.string "remarks"
t.integer "school_id"
t.integer "status", default: 0
t.datetime "created_at", null: false
t.datetime "updated_at", null: false
t.integer "user_id"
end
create_table "apply_homeworks", id: :integer, options: "ENGINE=InnoDB DEFAULT CHARSET=utf8", force: :cascade do |t|
t.integer "status"
t.integer "user_id"
t.integer "homework_common_id"
t.datetime "created_at", null: false
t.datetime "updated_at", null: false
t.index ["homework_common_id"], name: "index_apply_homeworks_on_homework_common_id"
t.index ["user_id"], name: "index_apply_homeworks_on_user_id"
end
create_table "apply_jobs", options: "ENGINE=InnoDB DEFAULT CHARSET=utf8", force: :cascade do |t|
t.bigint "user_id"
t.bigint "job_id"
t.datetime "viewed_at"
t.datetime "created_at", null: false
t.datetime "updated_at", null: false
t.index ["job_id"], name: "index_apply_jobs_on_job_id"
t.index ["user_id"], name: "index_apply_jobs_on_user_id"
end
create_table "apply_project_masters", id: :integer, options: "ENGINE=InnoDB DEFAULT CHARSET=utf8", force: :cascade do |t|
t.integer "user_id"
t.string "apply_type"
t.integer "apply_id"
t.integer "status"
t.datetime "created_at", null: false
t.datetime "updated_at", null: false
end
create_table "apply_resources", id: :integer, options: "ENGINE=InnoDB DEFAULT CHARSET=utf8", force: :cascade do |t|
t.integer "status"
t.integer "user_id"
t.integer "attachment_id"
t.datetime "created_at", null: false
t.datetime "updated_at", null: false
t.integer "container_id"
t.string "container_type"
t.text "content"
t.integer "apply_user_id"
end
create_table "apply_user_authentications", id: :integer, options: "ENGINE=InnoDB DEFAULT CHARSET=utf8", force: :cascade do |t|
t.integer "user_id"
t.integer "status"
t.integer "auth_type"
t.string "remarks"
t.integer "dealer"
t.datetime "deal_time"
t.datetime "created_at", null: false
t.datetime "updated_at", null: false
t.boolean "is_delete", default: false
t.index ["user_id"], name: "index_apply_user_authentications_on_user_id"
end
create_table "article_homepages", id: :integer, options: "ENGINE=InnoDB DEFAULT CHARSET=utf8", force: :cascade do |t|
t.string "title"
t.text "content"
t.integer "user_id"
t.integer "homepage_id"
t.datetime "created_at", null: false
t.datetime "updated_at", null: false
t.index ["homepage_id"], name: "index_article_homepages_on_homepage_id"
t.index ["user_id"], name: "index_article_homepages_on_user_id"
end
create_table "at_messages", id: :integer, options: "ENGINE=InnoDB DEFAULT CHARSET=utf8", force: :cascade do |t|
t.integer "user_id"
t.integer "at_message_id"
t.string "at_message_type"
t.boolean "viewed", default: false
t.string "container_type"
t.integer "container_id"
t.datetime "created_at", null: false
t.datetime "updated_at", null: false
t.integer "sender_id"
t.index ["user_id"], name: "index_at_messages_on_user_id"
end
create_table "attachment_group_settings", id: :integer, options: "ENGINE=InnoDB DEFAULT CHARSET=utf8", force: :cascade do |t|
t.integer "attachment_id"
t.integer "course_group_id"
t.integer "course_id"
t.datetime "publish_time"
t.datetime "created_at", null: false
t.datetime "updated_at", null: false
t.index ["attachment_id"], name: "index_attachment_group_settings_on_attachment_id"
t.index ["course_group_id"], name: "index_attachment_group_settings_on_course_group_id"
t.index ["course_id"], name: "index_attachment_group_settings_on_course_id"
end
create_table "attachment_histories", id: :integer, options: "ENGINE=InnoDB DEFAULT CHARSET=utf8", force: :cascade do |t|
t.integer "container_id"
t.string "container_type"
t.string "filename", default: ""
t.string "disk_filename", default: ""
t.integer "filesize", default: 0
t.string "content_type", default: ""
t.string "digest", limit: 60, default: ""
t.integer "downloads", default: 0
t.integer "author_id"
t.datetime "created_on"
t.text "description"
t.string "disk_directory"
t.integer "attachtype"
t.integer "is_public"
t.integer "copy_from"
t.integer "quotes"
t.integer "version"
t.integer "attachment_id"
t.integer "is_publish", default: 1
t.date "publish_time"
t.string "cloud_url", default: ""
end
create_table "attachments", id: :integer, options: "ENGINE=InnoDB DEFAULT CHARSET=utf8", force: :cascade do |t|
t.integer "container_id"
t.string "container_type", limit: 30
t.string "filename", default: "", null: false
t.string "disk_filename", default: "", null: false
t.integer "filesize", default: 0, null: false
t.string "content_type", default: ""
t.string "digest", limit: 60, default: "", null: false
t.integer "downloads", default: 0, null: false
t.integer "author_id", default: 0, null: false
t.datetime "created_on"
t.text "description"
t.string "disk_directory"
t.integer "attachtype", default: 1
t.integer "is_public", default: 1
t.string "copy_from"
t.integer "quotes", default: 0
t.integer "is_publish", default: 1
t.datetime "publish_time"
t.integer "resource_bank_id"
t.boolean "unified_setting", default: true
t.string "cloud_url", default: ""
t.integer "course_second_category_id", default: 0
t.boolean "delay_publish", default: false
t.string "link"
t.index ["author_id"], name: "index_attachments_on_author_id"
t.index ["container_id", "container_type"], name: "index_attachments_on_container_id_and_container_type"
t.index ["created_on"], name: "index_attachments_on_created_on"
end
create_table "attachmentstypes", id: :integer, options: "ENGINE=InnoDB DEFAULT CHARSET=utf8", force: :cascade do |t|
t.integer "typeId", null: false
t.string "typeName", limit: 50
end
create_table "attendances", id: :integer, options: "ENGINE=InnoDB DEFAULT CHARSET=utf8", force: :cascade do |t|
t.integer "user_id"
t.integer "score", default: 0
t.datetime "created_at", null: false
t.datetime "updated_at", null: false
t.index ["user_id"], name: "user"
end
create_table "auth_sources", id: :integer, options: "ENGINE=InnoDB DEFAULT CHARSET=utf8", force: :cascade do |t|
t.string "type", limit: 30, default: "", null: false
t.string "name", limit: 60, default: "", null: false
t.string "host", limit: 60
t.integer "port"
t.string "account"
t.string "account_password", default: ""
t.string "base_dn"
t.string "attr_login", limit: 30
t.string "attr_firstname", limit: 30
t.string "attr_lastname", limit: 30
t.string "attr_mail", limit: 30
t.boolean "onthefly_register", default: false, null: false
t.boolean "tls", default: false, null: false
t.string "filter"
t.integer "timeout"
t.index ["id", "type"], name: "index_auth_sources_on_id_and_type"
end
create_table "authentications", id: :integer, options: "ENGINE=InnoDB DEFAULT CHARSET=utf8", force: :cascade do |t|
t.integer "level", limit: 1
t.text "permissions"
end
create_table "authentications_users", id: :integer, options: "ENGINE=InnoDB DEFAULT CHARSET=utf8", force: :cascade do |t|
t.integer "user_id"
t.integer "authentication_id"
end
create_table "bidding_users", id: :integer, options: "ENGINE=InnoDB DEFAULT CHARSET=utf8", force: :cascade do |t|
t.integer "project_package_id"
t.integer "user_id"
t.string "status"
t.datetime "created_at", null: false
t.datetime "updated_at", null: false
t.index ["project_package_id"], name: "index_bidding_users_on_project_package_id"
t.index ["user_id"], name: "index_bidding_users_on_user_id"
end
create_table "biding_projects", id: :integer, options: "ENGINE=InnoDB DEFAULT CHARSET=utf8", force: :cascade do |t|
t.integer "project_id"
t.integer "bid_id"
t.integer "user_id"
t.string "description"
t.datetime "created_at", null: false
t.datetime "updated_at", null: false
t.string "reward"
end
create_table "bids", id: :integer, options: "ENGINE=InnoDB DEFAULT CHARSET=utf8", force: :cascade do |t|
t.string "name"
t.string "budget", null: false
t.integer "author_id"
t.date "deadline"
t.text "description"
t.datetime "created_on", null: false
t.datetime "updated_on", null: false
t.integer "commit"
t.integer "reward_type"
t.integer "homework_type"
t.integer "parent_id"
t.string "password"
t.integer "is_evaluation"
t.integer "proportion", default: 60
t.integer "comment_status", default: 0
t.integer "evaluation_num", default: 3
t.integer "open_anonymous_evaluation", default: 1
end
create_table "blog_comments", id: :integer, options: "ENGINE=InnoDB DEFAULT CHARSET=utf8", force: :cascade do |t|
t.integer "blog_id", null: false
t.integer "parent_id"
t.string "title", default: "", null: false
t.text "content"
t.integer "author_id"
t.integer "comments_count", default: 0, null: false
t.integer "last_comment_id"
t.datetime "created_on", null: false
t.datetime "updated_on", null: false
t.boolean "locked", default: false
t.integer "sticky", default: 0
t.integer "reply_id"
t.datetime "created_at", null: false
t.datetime "updated_at", null: false
t.integer "root_id"
t.integer "visits", default: 0
t.index ["root_id"], name: "index_blog_comments_on_root_id"
end
create_table "blog_messages", id: :integer, options: "ENGINE=InnoDB DEFAULT CHARSET=utf8", force: :cascade do |t|
t.integer "user_id"
t.integer "blog_message_id"
t.integer "blog_id"
t.string "blog_message_type"
t.boolean "viewed", default: false
t.text "content"
t.datetime "created_at", null: false
t.datetime "updated_at", null: false
t.integer "user_operator_id"
end
create_table "blogs", id: :integer, options: "ENGINE=InnoDB DEFAULT CHARSET=utf8", force: :cascade do |t|
t.string "name", default: "", null: false
t.text "description"
t.integer "position", default: 1
t.integer "article_count", default: 0, null: false
t.integer "comments_count", default: 0, null: false
t.integer "last_comments_id"
t.integer "parent_id"
t.integer "author_id"
t.datetime "created_at", null: false
t.datetime "updated_at", null: false
t.integer "homepage_id"
end
create_table "boards", id: :integer, options: "ENGINE=InnoDB DEFAULT CHARSET=utf8", force: :cascade do |t|
t.integer "project_id", null: false
t.string "name", default: "", null: false
t.string "description"
t.integer "position", default: 1
t.integer "topics_count", default: 0, null: false
t.integer "messages_count", default: 0, null: false
t.integer "last_message_id"
t.integer "parent_id", default: 0
t.integer "course_id"
t.integer "org_subfield_id"
t.integer "contest_id"
t.index ["course_id"], name: "index_boards_on_course_id"
t.index ["last_message_id"], name: "index_boards_on_last_message_id"
t.index ["parent_id"], name: "parent"
t.index ["project_id"], name: "boards_project_id"
end
create_table "bug_to_osps", id: :integer, options: "ENGINE=InnoDB DEFAULT CHARSET=utf8", force: :cascade do |t|
t.integer "osp_id"
t.integer "relative_memo_id"
t.string "description"
t.datetime "created_at", null: false
t.datetime "updated_at", null: false
end
create_table "career_faqs", id: :integer, options: "ENGINE=InnoDB DEFAULT CHARSET=utf8", force: :cascade do |t|
t.string "question"
t.string "answer"
t.integer "career_id"
t.datetime "created_at", null: false
t.datetime "updated_at", null: false
end
create_table "career_stage_subjects", id: :integer, options: "ENGINE=InnoDB DEFAULT CHARSET=utf8", force: :cascade do |t|
t.integer "career_stage_id"
t.integer "subject_id"
t.datetime "created_at", null: false
t.datetime "updated_at", null: false
end
create_table "career_stages", id: :integer, options: "ENGINE=InnoDB DEFAULT CHARSET=utf8", force: :cascade do |t|
t.string "name"
t.string "description"
t.string "position"
t.datetime "created_at", null: false
t.datetime "updated_at", null: false
t.integer "career_id"
end
create_table "careers", id: :integer, options: "ENGINE=InnoDB DEFAULT CHARSET=utf8", force: :cascade do |t|
t.string "name"
t.string "video_name"
t.string "video_description"
t.datetime "created_at", null: false
t.datetime "updated_at", null: false
t.integer "user_id"
t.boolean "status", default: false
t.datetime "published_at"
end
create_table "challenge_answers", options: "ENGINE=InnoDB DEFAULT CHARSET=utf8", force: :cascade do |t|
t.string "name"
t.text "contents", limit: 4294967295
t.integer "score"
t.integer "level"
t.bigint "challenge_id"
t.datetime "created_at", null: false
t.datetime "updated_at", null: false
t.index ["challenge_id"], name: "index_challenge_answers_on_challenge_id"
end
create_table "challenge_chooses", id: :integer, options: "ENGINE=InnoDB DEFAULT CHARSET=utf8", force: :cascade do |t|
t.text "subject"
t.integer "challenge_id"
t.string "standard_answer"
t.text "answer"
t.integer "score"
t.integer "difficult", default: 1
t.integer "category"
t.integer "position", default: 1
t.datetime "created_at", null: false
t.datetime "updated_at", null: false
t.index ["challenge_id"], name: "index_challenge_chooses_on_challenge_id"
end
create_table "challenge_questions", id: :integer, options: "ENGINE=InnoDB DEFAULT CHARSET=utf8", force: :cascade do |t|
t.text "option_name"
t.integer "challenge_choose_id"
t.boolean "right_key"
t.integer "position", limit: 1
t.datetime "created_at", null: false
t.datetime "updated_at", null: false
t.index ["challenge_choose_id"], name: "index_challenge_questions_on_challenge_choose_id"
end
create_table "challenge_samples", id: :integer, options: "ENGINE=InnoDB DEFAULT CHARSET=utf8", force: :cascade do |t|
t.string "input"
t.string "output"
t.integer "challenge_id"
t.datetime "created_at", null: false
t.datetime "updated_at", null: false
t.integer "game_id"
end
create_table "challenge_tags", id: :integer, options: "ENGINE=InnoDB DEFAULT CHARSET=utf8", force: :cascade do |t|
t.string "name"
t.integer "challenge_id"
t.datetime "created_at", null: false
t.datetime "updated_at", null: false
t.integer "challenge_choose_id"
t.index ["challenge_id"], name: "index_challenge_tags_on_challenge_id"
end
create_table "challenge_work_scores", id: :integer, options: "ENGINE=InnoDB DEFAULT CHARSET=utf8", force: :cascade do |t|
t.integer "user_id"
t.integer "student_work_id"
t.integer "challenge_id"
t.float "score"
t.datetime "created_at", null: false
t.datetime "updated_at", null: false
t.string "comment"
t.index ["challenge_id"], name: "index_challenge_work_scores_on_challenge_id"
t.index ["student_work_id", "challenge_id"], name: "index_score_on_student_work_id_and_challenge_id"
t.index ["student_work_id"], name: "index_challenge_work_scores_on_student_work_id"
end
create_table "challenges", id: :integer, options: "ENGINE=InnoDB DEFAULT CHARSET=utf8", force: :cascade do |t|
t.integer "shixun_id"
t.string "subject"
t.integer "user_id"
t.integer "status", limit: 1, default: 0
t.integer "position", limit: 1, default: 1
t.datetime "created_at", null: false
t.datetime "updated_at", null: false
t.text "task_pass", collation: "utf8mb4_unicode_ci"
t.text "answer", limit: 4294967295
t.integer "score", default: 100
t.integer "visits", default: 0
t.text "path"
t.integer "evaluation_way", default: 0
t.integer "difficulty", default: 1
t.string "exec_path"
t.integer "code_line"
t.integer "st", limit: 1, default: 0
t.text "web_route"
t.text "picture_path"
t.text "expect_picture_path"
t.datetime "modify_time"
t.integer "challenge_tags_count", default: 0
t.string "original_picture_path"
t.integer "show_type", default: -1
t.boolean "test_set_score", default: false
t.integer "exec_time", default: 20
t.boolean "test_set_average", default: true
t.integer "praises_count", default: 0
t.boolean "ignore_space", default: true
t.index ["shixun_id"], name: "index_challenges_on_shixun_id"
end
create_table "changes", id: :integer, options: "ENGINE=InnoDB DEFAULT CHARSET=utf8", force: :cascade do |t|
t.integer "changeset_id", null: false
t.string "action", limit: 1, default: "", null: false
t.text "path", null: false
t.text "from_path"
t.string "from_revision"
t.string "revision"
t.string "branch"
t.index ["changeset_id"], name: "changesets_changeset_id"
end
create_table "changeset_parents", id: false, options: "ENGINE=InnoDB DEFAULT CHARSET=utf8", force: :cascade do |t|
t.integer "changeset_id", null: false
t.integer "parent_id", null: false
t.index ["changeset_id"], name: "changeset_parents_changeset_ids"
t.index ["parent_id"], name: "changeset_parents_parent_ids"
end
create_table "changesets", id: :integer, options: "ENGINE=InnoDB DEFAULT CHARSET=utf8", force: :cascade do |t|
t.integer "repository_id", null: false
t.string "revision", null: false
t.string "committer"
t.datetime "committed_on", null: false
t.text "comments"
t.date "commit_date"
t.string "scmid"
t.integer "user_id"
t.integer "project_id"
t.integer "type", default: 0
t.index ["committed_on"], name: "index_changesets_on_committed_on"
t.index ["repository_id", "revision"], name: "changesets_repos_rev", unique: true
t.index ["repository_id", "scmid"], name: "changesets_repos_scmid"
t.index ["repository_id"], name: "index_changesets_on_repository_id"
t.index ["user_id"], name: "index_changesets_on_user_id"
end
create_table "changesets_issues", id: false, options: "ENGINE=InnoDB DEFAULT CHARSET=utf8", force: :cascade do |t|
t.integer "changeset_id", null: false
t.integer "issue_id", null: false
t.index ["changeset_id", "issue_id"], name: "changesets_issues_ids", unique: true
end
create_table "chart_rules", id: :integer, options: "ENGINE=InnoDB DEFAULT CHARSET=utf8", force: :cascade do |t|
t.string "rule_type"
t.text "content"
t.datetime "created_at", null: false
t.datetime "updated_at", null: false
t.integer "competition_id"
t.integer "competition_stage_id"
t.index ["competition_id"], name: "index_chart_rules_on_competition_id"
t.index ["competition_stage_id"], name: "index_chart_rules_on_competition_stage_id"
end
create_table "choose_outputs", id: :integer, options: "ENGINE=InnoDB DEFAULT CHARSET=utf8", force: :cascade do |t|
t.integer "challenge_choose_id"
t.integer "user_id"
t.string "answer"
t.boolean "correct"
t.datetime "created_at", null: false
t.datetime "updated_at", null: false
end
create_table "code_review_assignments", id: :integer, options: "ENGINE=InnoDB DEFAULT CHARSET=utf8", force: :cascade do |t|
t.integer "issue_id"
t.integer "change_id"
t.integer "attachment_id"
t.string "file_path"
t.string "rev"
t.string "rev_to"
t.string "action_type"
t.integer "changeset_id"
end
create_table "code_review_project_settings", id: :integer, options: "ENGINE=InnoDB DEFAULT CHARSET=utf8", force: :cascade do |t|
t.integer "project_id"
t.integer "tracker_id"
t.datetime "created_at"
t.datetime "updated_at"
t.integer "updated_by"
t.boolean "hide_code_review_tab", default: false
t.integer "auto_relation", default: 1
t.integer "assignment_tracker_id"
t.text "auto_assign"
t.integer "lock_version", default: 0, null: false
t.boolean "tracker_in_review_dialog", default: false
end
create_table "code_review_user_settings", id: :integer, options: "ENGINE=InnoDB DEFAULT CHARSET=utf8", force: :cascade do |t|
t.integer "user_id", default: 0, null: false
t.integer "mail_notification", default: 0, null: false
t.datetime "created_at"
t.datetime "updated_at"
end
create_table "code_reviews", id: :integer, options: "ENGINE=InnoDB DEFAULT CHARSET=utf8", force: :cascade do |t|
t.integer "project_id"
t.integer "change_id"
t.datetime "created_at"
t.datetime "updated_at"
t.integer "line"
t.integer "updated_by_id"
t.integer "lock_version", default: 0, null: false
t.integer "status_changed_from"
t.integer "status_changed_to"
t.integer "issue_id"
t.string "action_type"
t.string "file_path"
t.string "rev"
t.string "rev_to"
t.integer "attachment_id"
t.integer "file_count", default: 0, null: false
t.boolean "diff_all"
end
create_table "code_tests", id: :integer, options: "ENGINE=InnoDB DEFAULT CHARSET=utf8", force: :cascade do |t|
t.integer "homework_id"
t.integer "wait_time", default: 0
t.integer "language"
t.integer "status"
t.integer "time_used", default: 0
t.datetime "created_at", null: false
t.datetime "updated_at", null: false
t.integer "student_work_id", default: 0
end
create_table "collections", options: "ENGINE=InnoDB DEFAULT CHARSET=utf8", force: :cascade do |t|
t.bigint "user_id"
t.integer "container_id"
t.string "container_type"
t.datetime "created_at", null: false
t.datetime "updated_at", null: false
t.index ["container_type", "container_id"], name: "index_collections_on_container_type_and_container_id"
t.index ["user_id", "container_type", "container_id"], name: "index_collections_on_user_id_and_container_type_and_container_id", unique: true
t.index ["user_id"], name: "index_collections_on_user_id"
end
create_table "comments", id: :integer, options: "ENGINE=InnoDB DEFAULT CHARSET=utf8", force: :cascade do |t|
t.string "commented_type", limit: 30, default: "", null: false
t.integer "commented_id", default: 0, null: false
t.integer "author_id", default: 0, null: false
t.text "comments"
t.datetime "created_on", null: false
t.datetime "updated_on", null: false
t.integer "parent_id"
t.integer "comments_count", default: 0
t.integer "reply_id"
t.index ["author_id"], name: "index_comments_on_author_id"
t.index ["commented_id", "commented_type"], name: "index_comments_on_commented_id_and_commented_type"
end
create_table "commit_issues", id: :integer, options: "ENGINE=InnoDB DEFAULT CHARSET=utf8", force: :cascade do |t|
t.string "commit_id"
t.integer "issue_id"
t.integer "project_id"
t.datetime "created_at", null: false
t.datetime "updated_at", null: false
end
create_table "commits", id: :integer, options: "ENGINE=InnoDB DEFAULT CHARSET=utf8", force: :cascade do |t|
t.integer "repository_id"
t.string "version"
t.string "committer"
t.text "comments"
t.datetime "committed_on"
t.integer "project_id"
t.datetime "created_at", null: false
t.datetime "updated_at", null: false
end
create_table "competition_awards", options: "ENGINE=InnoDB DEFAULT CHARSET=utf8", force: :cascade do |t|
t.bigint "competition_id"
t.string "name"
t.integer "num", default: 0
t.integer "award_type", default: 0
t.datetime "created_at", null: false
t.datetime "updated_at", null: false
t.index ["competition_id"], name: "index_competition_awards_on_competition_id"
end
create_table "competition_course_records", id: :integer, options: "ENGINE=InnoDB DEFAULT CHARSET=utf8", force: :cascade do |t|
t.integer "competition_id"
t.integer "competition_team_id"
t.string "type"
t.integer "user_id"
t.string "username"
t.integer "score"
t.text "snapshot"
end
create_table "competition_entries", id: :integer, options: "ENGINE=InnoDB DEFAULT CHARSET=utf8", force: :cascade do |t|
t.integer "competition_stage_section_id"
t.integer "competition_stage_id"
t.string "name"
t.string "url"
t.datetime "created_at", null: false
t.datetime "updated_at", null: false
t.string "shixun_identifier"
t.index ["competition_stage_id"], name: "index_competition_entries_on_competition_stage_id"
t.index ["competition_stage_section_id"], name: "index_competition_entries_on_competition_stage_section_id"
end
create_table "competition_lists", id: :integer, options: "ENGINE=InnoDB DEFAULT CHARSET=utf8", force: :cascade do |t|
t.integer "user_id"
t.integer "competition_id"
t.datetime "created_at", null: false
t.datetime "updated_at", null: false
t.index ["competition_id"], name: "index_competition_lists_on_competition_id"
end
create_table "competition_managers", options: "ENGINE=InnoDB DEFAULT CHARSET=utf8", force: :cascade do |t|
t.bigint "user_id"
t.bigint "competition_id"
t.datetime "created_at", null: false
t.datetime "updated_at", null: false
t.index ["competition_id"], name: "index_competition_managers_on_competition_id"
t.index ["user_id"], name: "index_competition_managers_on_user_id"
end
create_table "competition_mode_settings", options: "ENGINE=InnoDB DEFAULT CHARSET=utf8", force: :cascade do |t|
t.bigint "course_id"
t.datetime "start_time"
t.datetime "end_time"
t.datetime "created_at", null: false
t.datetime "updated_at", null: false
t.integer "competition_id"
t.index ["competition_id"], name: "index_competition_mode_settings_on_competition_id"
t.index ["course_id"], name: "index_competition_mode_settings_on_course_id"
end
create_table "competition_module_md_contents", id: :integer, options: "ENGINE=InnoDB DEFAULT CHARSET=utf8", force: :cascade do |t|
t.string "name"
t.text "content"
t.integer "competition_module_id"
t.datetime "created_at", null: false
t.datetime "updated_at", null: false
t.integer "competition_stage_id", default: 0
end
create_table "competition_modules", id: :integer, options: "ENGINE=InnoDB DEFAULT CHARSET=utf8", force: :cascade do |t|
t.integer "competition_id"
t.string "name"
t.boolean "hidden", default: false
t.string "url"
t.datetime "created_at", null: false
t.datetime "updated_at", null: false
t.integer "position", default: 0
t.boolean "md_edit", default: false
t.string "module_type"
t.index ["competition_id"], name: "index_competition_modules_on_competition_id"
end
create_table "competition_prize_users", options: "ENGINE=InnoDB DEFAULT CHARSET=utf8", force: :cascade do |t|
t.bigint "competition_id"
t.bigint "competition_team_id"
t.bigint "competition_prize_id"
t.bigint "user_id"
t.bigint "approver_id"
t.string "status"
t.integer "rank"
t.boolean "leader", default: false
t.text "extra"
t.datetime "approved_at"
t.datetime "created_at", null: false
t.datetime "updated_at", null: false
t.index ["approver_id"], name: "index_competition_prize_users_on_approver_id"
t.index ["competition_id"], name: "index_competition_prize_users_on_competition_id"
t.index ["competition_prize_id"], name: "index_competition_prize_users_on_competition_prize_id"
t.index ["competition_team_id"], name: "index_competition_prize_users_on_competition_team_id"
t.index ["user_id"], name: "index_competition_prize_users_on_user_id"
end
create_table "competition_prizes", options: "ENGINE=InnoDB DEFAULT CHARSET=utf8", force: :cascade do |t|
t.bigint "competition_id"
t.string "name"
t.string "category"
t.integer "num"
t.datetime "created_at", null: false
t.datetime "updated_at", null: false
t.index ["competition_id"], name: "index_competition_prizes_on_competition_id"
end
create_table "competition_schools", options: "ENGINE=InnoDB DEFAULT CHARSET=utf8", force: :cascade do |t|
t.bigint "competition_id"
t.bigint "school_id"
t.string "source"
t.datetime "created_at", null: false
t.datetime "updated_at", null: false
t.index ["competition_id"], name: "index_competition_schools_on_competition_id"
t.index ["school_id"], name: "index_competition_schools_on_school_id"
end
create_table "competition_scores", id: :integer, options: "ENGINE=InnoDB DEFAULT CHARSET=utf8", force: :cascade do |t|
t.integer "user_id"
t.float "score"
t.string "score_type"
t.string "region"
t.integer "cost_time"
t.datetime "created_at", null: false
t.datetime "updated_at", null: false
t.integer "competition_id"
t.integer "competition_stage_id", default: 0
t.integer "competition_team_id"
t.index ["competition_id"], name: "index_competition_scores_on_competition_id"
t.index ["competition_stage_id"], name: "index_competition_scores_on_competition_stage_id"
t.index ["competition_team_id"], name: "index_competition_scores_on_competition_team_id"
t.index ["user_id"], name: "index_competition_scores_on_user_id"
end
create_table "competition_staffs", id: :integer, options: "ENGINE=InnoDB DEFAULT CHARSET=utf8", force: :cascade do |t|
t.integer "competition_id"
t.integer "position"
t.string "category"
t.integer "minimum"
t.integer "maximum"
t.datetime "created_at", null: false
t.datetime "updated_at", null: false
t.boolean "mutiple_limited", default: false
end
create_table "competition_stage_sections", id: :integer, options: "ENGINE=InnoDB DEFAULT CHARSET=utf8", force: :cascade do |t|
t.integer "competition_id"
t.integer "competition_stage_id"
t.string "name"
t.datetime "start_time"
t.datetime "end_time"
t.integer "entry"
t.datetime "created_at", null: false
t.datetime "updated_at", null: false
t.integer "mission_count", default: 0
t.integer "score_source", default: 0
t.index ["competition_id"], name: "index_competition_stage_sections_on_competition_id"
t.index ["competition_stage_id"], name: "index_competition_stage_sections_on_competition_stage_id"
end
create_table "competition_stages", id: :integer, options: "ENGINE=InnoDB DEFAULT CHARSET=utf8", force: :cascade do |t|
t.integer "competition_id"
t.string "name"
t.datetime "created_at", null: false
t.datetime "updated_at", null: false
t.float "score_rate", default: 1.0
t.index ["competition_id"], name: "index_competition_stages_on_competition_id"
end
create_table "competition_teams", id: :integer, options: "ENGINE=InnoDB DEFAULT CHARSET=utf8", force: :cascade do |t|
t.string "name"
t.integer "user_id"
t.integer "competition_id"
t.integer "team_type", default: 0
t.string "invite_code"
t.datetime "created_at", null: false
t.datetime "updated_at", null: false
t.integer "teacher_id"
t.index ["competition_id"], name: "index_competition_teams_on_competition_id"
t.index ["user_id"], name: "index_competition_teams_on_user_id"
end
create_table "competition_text_configs", id: :integer, options: "ENGINE=InnoDB DEFAULT CHARSET=utf8", force: :cascade do |t|
t.integer "competition_id"
t.string "name"
t.text "description"
t.datetime "created_at", null: false
t.datetime "updated_at", null: false
end
create_table "competitions", id: :integer, options: "ENGINE=InnoDB DEFAULT CHARSET=utf8", force: :cascade do |t|
t.string "name"
t.datetime "start_time"
t.datetime "end_time"
t.string "identifier"
t.boolean "status", default: false
t.datetime "online_time"
t.datetime "created_at", null: false
t.datetime "updated_at", null: false
t.integer "visits", default: 0
t.integer "competition_lists_count", default: 0
t.integer "min_num", default: 1
t.integer "max_num", default: 1
t.datetime "enroll_end_time"
t.string "sub_title"
t.datetime "published_at"
t.integer "bonus", default: 0
t.integer "mode", default: 1
t.text "description"
t.text "introduction"
t.integer "awards_count", default: 0
t.bigint "laboratory_id"
t.index ["laboratory_id"], name: "index_competitions_on_laboratory_id"
end
create_table "contest_activities", id: :integer, options: "ENGINE=InnoDB DEFAULT CHARSET=utf8", force: :cascade do |t|
t.integer "user_id"
t.integer "contest_id"
t.integer "contest_act_id"
t.string "contest_act_type"
t.datetime "created_at", null: false
t.datetime "updated_at", null: false
t.index ["contest_id"], name: "index_contest_activities_on_contest_id"
t.index ["user_id"], name: "index_contest_activities_on_user_id"
end
create_table "contest_member_roles", id: :integer, options: "ENGINE=InnoDB DEFAULT CHARSET=utf8", force: :cascade do |t|
t.integer "contest_member_id"
t.integer "role_id"
t.boolean "is_current", default: true
t.datetime "created_at", null: false
t.datetime "updated_at", null: false
t.index ["contest_member_id"], name: "index_contest_member_roles_on_contest_member_id"
t.index ["role_id"], name: "index_contest_member_roles_on_role_id"
end
create_table "contest_members", id: :integer, options: "ENGINE=InnoDB DEFAULT CHARSET=utf8", force: :cascade do |t|
t.integer "user_id"
t.integer "contest_id"
t.boolean "is_collect", default: true
t.datetime "created_at", null: false
t.datetime "updated_at", null: false
t.index ["contest_id"], name: "index_contest_members_on_contest_id"
t.index ["user_id"], name: "index_contest_members_on_user_id"
end
create_table "contest_messages", id: :integer, options: "ENGINE=InnoDB DEFAULT CHARSET=utf8", force: :cascade do |t|
t.integer "user_id"
t.integer "contest_id"
t.integer "contest_message_id"
t.string "contest_message_type"
t.boolean "viewed", default: false
t.text "content"
t.integer "status"
t.datetime "created_at", null: false
t.datetime "updated_at", null: false
t.index ["contest_id"], name: "index_contest_messages_on_contest_id"
t.index ["user_id"], name: "index_contest_messages_on_user_id"
end
create_table "contestant_for_contests", id: :integer, options: "ENGINE=InnoDB DEFAULT CHARSET=utf8", force: :cascade do |t|
t.integer "student_id"
t.integer "contest_id"
t.datetime "created_at", null: false
t.datetime "updated_at", null: false
t.index ["contest_id"], name: "index_contestant_for_contests_on_contest_id"
t.index ["student_id"], name: "index_contestant_for_contests_on_student_id"
end
create_table "contestant_work_evaluation_distributions", id: :integer, options: "ENGINE=InnoDB DEFAULT CHARSET=utf8", force: :cascade do |t|
t.integer "user_id"
t.integer "contestant_work_id"
t.datetime "created_at", null: false
t.datetime "updated_at", null: false
t.index ["user_id"], name: "index_contestant_work_evaluation_distributions_on_user_id"
end
create_table "contestant_work_projects", id: :integer, options: "ENGINE=InnoDB DEFAULT CHARSET=utf8", force: :cascade do |t|
t.integer "contest_id"
t.integer "work_id"
t.integer "contestant_work_id"
t.integer "project_id"
t.integer "user_id"
t.boolean "is_leader"
t.datetime "created_at", null: false
t.datetime "updated_at", null: false
t.index ["contest_id"], name: "index_contestant_work_projects_on_contest_id"
t.index ["contestant_work_id"], name: "index_contestant_work_projects_on_contestant_work_id"
t.index ["user_id"], name: "index_contestant_work_projects_on_user_id"
t.index ["work_id"], name: "index_contestant_work_projects_on_work_id"
end
create_table "contestant_work_scores", id: :integer, options: "ENGINE=InnoDB DEFAULT CHARSET=utf8", force: :cascade do |t|
t.integer "contestant_work_id"
t.integer "user_id"
t.integer "score"
t.text "comment"
t.integer "reviewer_role"
t.datetime "created_at", null: false
t.datetime "updated_at", null: false
t.index ["contestant_work_id"], name: "index_contestant_work_scores_on_contestant_work_id"
t.index ["user_id"], name: "index_contestant_work_scores_on_user_id"
end
create_table "contestant_works", id: :integer, options: "ENGINE=InnoDB DEFAULT CHARSET=utf8", force: :cascade do |t|
t.string "name"
t.text "description"
t.integer "work_id"
t.integer "user_id"
t.float "work_score"
t.integer "project_id"
t.integer "work_status"
t.datetime "commit_time"
t.boolean "is_delete", default: false
t.datetime "created_at", null: false
t.datetime "updated_at", null: false
t.integer "judge_score"
t.index ["project_id"], name: "index_contestant_works_on_project_id"
t.index ["user_id"], name: "index_contestant_works_on_user_id"
t.index ["work_id"], name: "index_contestant_works_on_work_id"
end
create_table "contests", id: :integer, options: "ENGINE=InnoDB DEFAULT CHARSET=utf8", force: :cascade do |t|
t.integer "user_id"
t.string "name"
t.text "description"
t.boolean "is_public"
t.boolean "is_delete", default: false
t.integer "visits", default: 0
t.string "invite_code"
t.integer "invite_code_halt", default: 0
t.datetime "created_at", null: false
t.datetime "updated_at", null: false
end
create_table "coo_imgs", id: :integer, options: "ENGINE=InnoDB DEFAULT CHARSET=utf8", force: :cascade do |t|
t.string "src_states"
t.string "url_states"
t.string "img_type"
t.datetime "created_at", null: false
t.datetime "updated_at", null: false
t.integer "position"
end
create_table "coop_imgs", id: :integer, options: "ENGINE=InnoDB DEFAULT CHARSET=utf8", force: :cascade do |t|
t.string "src_states"
t.string "url_states"
t.datetime "created_at", null: false
t.datetime "updated_at", null: false
t.string "img_type"
end
create_table "cooperations", id: :integer, options: "ENGINE=InnoDB DEFAULT CHARSET=utf8", force: :cascade do |t|
t.string "name"
t.string "mail"
t.string "qq"
t.datetime "created_at", null: false
t.datetime "updated_at", null: false
t.string "user_type"
end
create_table "course_activities", id: :integer, options: "ENGINE=InnoDB DEFAULT CHARSET=utf8", force: :cascade do |t|
t.integer "user_id"
t.integer "course_id"
t.integer "course_act_id"
t.string "course_act_type"
t.datetime "created_at", null: false
t.datetime "updated_at", null: false
t.index ["course_id", "course_act_id", "course_act_type", "created_at"], name: "course_act_index"
end
create_table "course_attachments", id: :integer, options: "ENGINE=InnoDB DEFAULT CHARSET=utf8", force: :cascade do |t|
t.string "filename"
t.string "disk_filename"
t.integer "filesize"
t.string "content_type"
t.string "digest"
t.integer "downloads"
t.string "author_id"
t.string "integer"
t.string "description"
t.string "disk_directory"
t.integer "attachtype"
t.integer "is_public"
t.datetime "created_at", null: false
t.datetime "updated_at", null: false
t.integer "container_id", default: 0
end
create_table "course_attendance_groups", options: "ENGINE=InnoDB DEFAULT CHARSET=utf8", force: :cascade do |t|
t.bigint "course_id"
t.bigint "course_attendance_id"
t.bigint "course_group_id"
t.datetime "created_at", null: false
t.datetime "updated_at", null: false
t.index ["course_attendance_id", "course_group_id", "course_id"], name: "course_group_attendance", unique: true
t.index ["course_attendance_id"], name: "index_course_attendance_groups_on_course_attendance_id"
t.index ["course_group_id"], name: "index_course_attendance_groups_on_course_group_id"
t.index ["course_id"], name: "index_course_attendance_groups_on_course_id"
end
create_table "course_attendances", options: "ENGINE=InnoDB DEFAULT CHARSET=utf8", force: :cascade do |t|
t.bigint "course_id"
t.bigint "user_id"
t.string "name"
t.integer "mode", limit: 1, default: 0
t.date "attendance_date"
t.time "start_time"
t.time "end_time"
t.string "attendance_code"
t.datetime "created_at", null: false
t.datetime "updated_at", null: false
t.index ["course_id"], name: "index_course_attendances_on_course_id"
t.index ["user_id"], name: "index_course_attendances_on_user_id"
end
create_table "course_contributor_scores", id: :integer, options: "ENGINE=InnoDB DEFAULT CHARSET=utf8", force: :cascade do |t|
t.integer "course_id"
t.integer "user_id"
t.integer "message_num", default: 0
t.integer "message_reply_num", default: 0
t.integer "news_reply_num", default: 0
t.integer "resource_num", default: 0
t.integer "journal_num", default: 0
t.integer "journal_reply_num", default: 0
t.datetime "created_at", null: false
t.datetime "updated_at", null: false
t.integer "total_score", default: 0
t.integer "homework_journal_num", default: 0
t.integer "news_num", default: 0
t.index ["course_id", "user_id"], name: "index_course_contributor_scores_on_course_id_and_user_id"
end
create_table "course_groups", id: :integer, options: "ENGINE=InnoDB DEFAULT CHARSET=utf8", force: :cascade do |t|
t.string "name"
t.integer "course_id"
t.datetime "created_at", null: false
t.datetime "updated_at", null: false
t.integer "members_count"
t.string "invite_code"
t.integer "position", default: 0
t.integer "course_members_count", default: 0
t.boolean "invite_code_halt", default: false
t.index ["course_id"], name: "index_course_groups_on_course_id"
t.index ["invite_code"], name: "index_course_groups_on_invite_code", unique: true
end
create_table "course_homework_categories", id: :integer, options: "ENGINE=InnoDB DEFAULT CHARSET=utf8", force: :cascade do |t|
t.integer "course_id"
t.string "name"
t.datetime "created_at", null: false
t.datetime "updated_at", null: false
t.index ["course_id"], name: "index_course_homework_categories_on_course_id"
end
create_table "course_homework_statistics", id: :integer, options: "ENGINE=InnoDB DEFAULT CHARSET=utf8", force: :cascade do |t|
t.integer "user_id"
t.integer "course_id"
t.integer "committed_work_num", default: 0
t.integer "un_commit_work_num", default: 0
t.integer "late_commit_work_num", default: 0
t.integer "absence_evaluation_work_num", default: 0
t.integer "un_evaluation_work_num", default: 0
t.integer "appeal_num", default: 0
t.float "average_score", default: 0.0
t.float "total_score", default: 0.0
t.datetime "created_at", null: false
t.datetime "updated_at", null: false
end
create_table "course_infos", id: :integer, options: "ENGINE=InnoDB DEFAULT CHARSET=utf8", force: :cascade do |t|
t.integer "course_id"
t.integer "user_id"
t.datetime "created_at", null: false
t.datetime "updated_at", null: false
end
create_table "course_lists", id: :integer, options: "ENGINE=InnoDB DEFAULT CHARSET=utf8", force: :cascade do |t|
t.string "name"
t.datetime "created_at"
t.datetime "updated_at"
t.integer "user_id"
t.boolean "is_admin", default: true
t.boolean "support_shixuns_search", default: false
end
create_table "course_member_attendances", options: "ENGINE=InnoDB DEFAULT CHARSET=utf8", force: :cascade do |t|
t.bigint "course_member_id"
t.bigint "user_id"
t.bigint "course_id"
t.bigint "course_attendance_id"
t.bigint "course_group_id"
t.integer "attendance_mode", default: 0
t.integer "attendance_status", default: 0
t.datetime "created_at", null: false
t.datetime "updated_at", null: false
t.index ["course_attendance_id", "user_id"], name: "index_on_user_attendance", unique: true
t.index ["course_attendance_id"], name: "index_course_member_attendances_on_course_attendance_id"
t.index ["course_group_id"], name: "index_course_member_attendances_on_course_group_id"
t.index ["course_id"], name: "index_course_member_attendances_on_course_id"
t.index ["course_member_id"], name: "index_course_member_attendances_on_course_member_id"
t.index ["user_id"], name: "index_course_member_attendances_on_user_id"
end
create_table "course_members", options: "ENGINE=InnoDB DEFAULT CHARSET=utf8", force: :cascade do |t|
t.integer "course_id"
t.integer "user_id"
t.integer "course_group_id", default: 0
t.integer "graduation_group_id", default: 0
t.integer "role", default: 0
t.boolean "is_active", default: true
t.datetime "created_at", null: false
t.datetime "updated_at", null: false
t.boolean "sticky", default: false
t.datetime "sticky_time"
t.index ["course_group_id"], name: "index_course_members_on_course_group_id"
t.index ["course_id", "user_id", "role"], name: "index_course_id_user_id_role", unique: true
end
create_table "course_messages", id: :integer, options: "ENGINE=InnoDB DEFAULT CHARSET=utf8", force: :cascade do |t|
t.integer "user_id"
t.integer "course_id"
t.integer "course_message_id"
t.string "course_message_type"
t.integer "viewed"
t.datetime "created_at", null: false
t.datetime "updated_at", null: false
t.text "content"
t.integer "status"
t.integer "apply_user_id"
t.integer "apply_result"
t.index ["course_message_type"], name: "index_course_messages_on_course_message_type"
t.index ["user_id", "course_id", "created_at"], name: "index_course_messages_on_user_id_and_course_id_and_created_at"
end
create_table "course_modules", id: :integer, options: "ENGINE=InnoDB DEFAULT CHARSET=utf8", force: :cascade do |t|
t.integer "course_id"
t.string "module_type"
t.integer "position"
t.integer "hidden"
t.datetime "created_at", null: false
t.datetime "updated_at", null: false
t.string "module_name"
t.index ["course_id", "module_type"], name: "index_course_modules_on_course_id_and_module_type"
end
create_table "course_second_categories", options: "ENGINE=InnoDB DEFAULT CHARSET=utf8", force: :cascade do |t|
t.bigint "course_id"
t.string "category_type"
t.string "name"
t.integer "position"
t.datetime "created_at", null: false
t.datetime "updated_at", null: false
t.integer "course_module_id"
t.integer "parent_id", default: 0
t.integer "user_id"
t.index ["course_id"], name: "index_course_second_categories_on_course_id"
t.index ["course_module_id"], name: "index_course_second_categories_on_course_module_id"
t.index ["parent_id"], name: "index_course_second_categories_on_parent_id"
end
create_table "course_stage_shixuns", options: "ENGINE=InnoDB DEFAULT CHARSET=utf8", force: :cascade do |t|
t.bigint "course_id"
t.bigint "course_stage_id"
t.bigint "shixun_id"
t.integer "position"
t.datetime "created_at", null: false
t.datetime "updated_at", null: false
t.index ["course_id"], name: "index_course_stage_shixuns_on_course_id"
t.index ["course_stage_id"], name: "index_course_stage_shixuns_on_course_stage_id"
t.index ["shixun_id"], name: "index_course_stage_shixuns_on_shixun_id"
end
create_table "course_stages", options: "ENGINE=InnoDB DEFAULT CHARSET=utf8", force: :cascade do |t|
t.bigint "course_id"
t.string "name"
t.text "description"
t.integer "position"
t.integer "shixuns_count"
t.datetime "created_at", null: false
t.datetime "updated_at", null: false
t.index ["course_id"], name: "index_course_stages_on_course_id"
end
create_table "course_statuses", id: :integer, options: "ENGINE=InnoDB DEFAULT CHARSET=utf8", force: :cascade do |t|
t.integer "changesets_count"
t.integer "watchers_count"
t.integer "course_id"
t.float "grade", default: 0.0
t.integer "course_ac_para", default: 0
t.datetime "created_at", null: false
t.datetime "updated_at", null: false
end
create_table "course_videos", options: "ENGINE=InnoDB DEFAULT CHARSET=utf8", force: :cascade do |t|
t.bigint "course_id"
t.bigint "video_id"
t.datetime "created_at", null: false
t.datetime "updated_at", null: false
t.integer "course_second_category_id", default: 0
t.boolean "is_link", default: false
t.string "title"
t.string "link"
t.integer "user_id"
t.index ["course_id"], name: "index_course_videos_on_course_id"
t.index ["video_id"], name: "index_course_videos_on_video_id"
end
create_table "courses", id: :integer, options: "ENGINE=InnoDB DEFAULT CHARSET=utf8", force: :cascade do |t|
t.integer "tea_id"
t.string "name"
t.integer "state"
t.string "code"
t.integer "time"
t.string "extra"
t.datetime "created_at", null: false
t.datetime "updated_at", null: false
t.string "location"
t.string "term"
t.string "string"
t.string "password"
t.string "setup_time"
t.string "endup_time"
t.integer "class_period", default: 0
t.integer "school_id"
t.text "description"
t.integer "status", default: 1
t.integer "attachmenttype", default: 2
t.integer "lft"
t.integer "rgt"
t.integer "is_public", limit: 1, default: 1
t.integer "inherit_members", limit: 1, default: 1
t.integer "open_student", default: 0
t.integer "outline", default: 0
t.integer "publish_resource", default: 0
t.integer "is_delete", default: 0
t.integer "end_time"
t.string "end_term"
t.integer "is_excellent", default: 0
t.integer "excellent_option", default: 0
t.integer "is_copy", default: 0
t.integer "visits", default: 0
t.integer "syllabus_id"
t.string "invite_code"
t.string "qrcode"
t.integer "qrcode_expiretime", default: 0
t.integer "invite_code_halt", limit: 1, default: 0
t.integer "os_allow", default: 0
t.float "credit"
t.boolean "is_end", default: false
t.date "end_date"
t.boolean "choose_group_allow", default: false
t.boolean "homepage_show", default: false
t.integer "course_list_id"
t.integer "members_count", default: 0
t.integer "homework_commons_count", default: 0
t.boolean "show_unit", default: false
t.string "teacher_list", default: "老师"
t.string "student_list", default: "学生"
t.boolean "is_hidden", default: false
t.integer "course_members_count", default: 0
t.integer "course_groups_count", default: 0
t.boolean "authentication", default: false
t.boolean "professional_certification", default: false
t.integer "graduation_topics_count", default: 0
t.integer "graduation_tasks_count", default: 0
t.integer "polls_count", default: 0
t.integer "exercises_count", default: 0
t.date "start_date"
t.integer "subject_id", default: 0
t.boolean "excellent", default: false
t.boolean "email_notify", default: false
t.boolean "sticky", default: false
t.datetime "sticky_time"
t.bigint "laboratory_id"
t.index ["invite_code"], name: "index_courses_on_invite_code", unique: true
t.index ["laboratory_id"], name: "index_courses_on_laboratory_id"
t.index ["school_id", "is_delete"], name: "index_courses_on_school_id_and_is_delete"
t.index ["subject_id"], name: "index_courses_on_subject_id"
t.index ["tea_id"], name: "index_courses_on_tea_id"
end
create_table "curriculum_directions", options: "ENGINE=InnoDB DEFAULT CHARSET=utf8", force: :cascade do |t|
t.string "name"
t.datetime "created_at", null: false
t.datetime "updated_at", null: false
end
create_table "curriculums", options: "ENGINE=InnoDB DEFAULT CHARSET=utf8", force: :cascade do |t|
t.string "name"
t.datetime "created_at", null: false
t.datetime "updated_at", null: false
end
create_table "custom_fields", id: :integer, options: "ENGINE=InnoDB DEFAULT CHARSET=utf8", force: :cascade do |t|
t.string "type", limit: 30, default: "", null: false
t.string "name", limit: 30, default: "", null: false
t.string "field_format", limit: 30, default: "", null: false
t.text "possible_values"
t.string "regexp", default: ""
t.integer "min_length", default: 0, null: false
t.integer "max_length", default: 0, null: false
t.boolean "is_required", default: false, null: false
t.boolean "is_for_all", default: false, null: false
t.boolean "is_filter", default: false, null: false
t.integer "position", default: 1
t.boolean "searchable", default: false
t.text "default_value"
t.boolean "editable", default: true
t.boolean "visible", default: true, null: false
t.boolean "multiple", default: false
t.index ["id", "type"], name: "index_custom_fields_on_id_and_type"
end
create_table "custom_fields_projects", id: false, options: "ENGINE=InnoDB DEFAULT CHARSET=utf8", force: :cascade do |t|
t.integer "custom_field_id", default: 0, null: false
t.integer "project_id", default: 0, null: false
t.index ["custom_field_id", "project_id"], name: "index_custom_fields_projects_on_custom_field_id_and_project_id", unique: true
end
create_table "custom_fields_trackers", id: false, options: "ENGINE=InnoDB DEFAULT CHARSET=utf8", force: :cascade do |t|
t.integer "custom_field_id", default: 0, null: false
t.integer "tracker_id", default: 0, null: false
t.index ["custom_field_id", "tracker_id"], name: "index_custom_fields_trackers_on_custom_field_id_and_tracker_id", unique: true
end
create_table "custom_values", id: :integer, options: "ENGINE=InnoDB DEFAULT CHARSET=utf8", force: :cascade do |t|
t.string "customized_type", limit: 30, default: "", null: false
t.integer "customized_id", default: 0, null: false
t.integer "custom_field_id", default: 0, null: false
t.text "value"
t.index ["custom_field_id"], name: "index_custom_values_on_custom_field_id"
t.index ["customized_type", "customized_id"], name: "custom_values_customized"
end
create_table "customers", id: :integer, options: "ENGINE=InnoDB DEFAULT CHARSET=utf8", force: :cascade do |t|
t.integer "partner_id"
t.datetime "created_at", null: false
t.datetime "updated_at", null: false
t.integer "school_id"
t.bigint "partner_manager_group_id"
t.index ["partner_id"], name: "index_customers_on_partner_id"
t.index ["partner_manager_group_id"], name: "index_customers_on_partner_manager_group_id"
end
create_table "data_exceptions", id: :integer, options: "ENGINE=InnoDB DEFAULT CHARSET=utf8", force: :cascade do |t|
t.string "message"
t.integer "container_id"
t.string "container_type"
t.datetime "created_at", null: false
t.datetime "updated_at", null: false
end
create_table "delayed_jobs", id: :integer, options: "ENGINE=InnoDB DEFAULT CHARSET=utf8", force: :cascade do |t|
t.integer "priority", default: 0, null: false
t.integer "attempts", default: 0, null: false
t.text "handler", null: false
t.text "last_error"
t.datetime "run_at"
t.datetime "locked_at"
t.datetime "failed_at"
t.string "locked_by"
t.string "queue"
t.datetime "created_at"
t.datetime "updated_at"
t.index ["priority", "run_at"], name: "delayed_jobs_priority"
end
create_table "delayed_jobs_20161218", id: false, options: "ENGINE=InnoDB DEFAULT CHARSET=utf8", force: :cascade do |t|
t.integer "id", default: 0, null: false
t.integer "priority", default: 0, null: false
t.integer "attempts", default: 0, null: false
t.text "handler", null: false
t.text "last_error"
t.datetime "run_at"
t.datetime "locked_at"
t.datetime "failed_at"
t.string "locked_by"
t.string "queue"
t.datetime "created_at"
t.datetime "updated_at"
end
create_table "department_members", id: :integer, options: "ENGINE=InnoDB DEFAULT CHARSET=utf8", force: :cascade do |t|
t.integer "department_id"
t.integer "user_id"
t.datetime "created_at", null: false
t.datetime "updated_at", null: false
t.index ["department_id"], name: "index_department_members_on_department_id"
t.index ["user_id"], name: "index_department_members_on_user_id"
end
create_table "departments", id: :integer, options: "ENGINE=InnoDB DEFAULT CHARSET=utf8", force: :cascade do |t|
t.string "name"
t.integer "school_id"
t.datetime "created_at", null: false
t.datetime "updated_at", null: false
t.boolean "is_auth", default: false
t.string "identifier"
t.integer "host_count", default: 5
t.boolean "is_delete", default: false
t.index ["school_id"], name: "index_departments_on_school_id"
end
create_table "diff_record_contents", options: "ENGINE=InnoDB DEFAULT CHARSET=utf8", force: :cascade do |t|
t.bigint "diff_record_id"
t.text "content"
t.index ["diff_record_id"], name: "index_diff_record_contents_on_diff_record_id"
end
create_table "diff_records", options: "ENGINE=InnoDB DEFAULT CHARSET=utf8", force: :cascade do |t|
t.bigint "user_id"
t.string "container_type"
t.bigint "container_id"
t.string "column_name"
t.datetime "created_at", null: false
t.datetime "updated_at", null: false
t.index ["container_type", "container_id"], name: "index_diff_records_on_container_type_and_container_id"
t.index ["user_id"], name: "index_diff_records_on_user_id"
end
create_table "discipline_categories", id: :integer, options: "ENGINE=InnoDB DEFAULT CHARSET=utf8", force: :cascade do |t|
t.integer "major_level"
t.string "name"
end
create_table "disciplines", options: "ENGINE=InnoDB DEFAULT CHARSET=utf8", force: :cascade do |t|
t.string "name"
t.boolean "subject", default: true
t.boolean "shixun", default: true
t.boolean "question", default: true
t.datetime "created_at", null: false
t.datetime "updated_at", null: false
t.integer "position", default: 0
end
create_table "discuss_demos", id: :integer, options: "ENGINE=InnoDB DEFAULT CHARSET=utf8", force: :cascade do |t|
t.string "title"
t.text "body"
t.datetime "created_at", null: false
t.datetime "updated_at", null: false
end
create_table "discusses", id: :integer, options: "ENGINE=InnoDB DEFAULT CHARSET=utf8", force: :cascade do |t|
t.integer "user_id"
t.string "dis_type"
t.integer "dis_id"
t.text "content"
t.integer "parent_id"
t.integer "root_id"
t.integer "praise_count"
t.datetime "created_at", null: false
t.datetime "updated_at", null: false
t.integer "challenge_id"
t.integer "reward"
t.boolean "hidden", default: false
t.integer "last_reply_id"
t.integer "position", limit: 1
t.integer "praises_count", default: 0
t.boolean "sticky", default: false
t.index ["challenge_id"], name: "index_discusses_on_challenge_id"
t.index ["user_id"], name: "index_discusses_on_user_id"
end
create_table "documents", id: :integer, options: "ENGINE=InnoDB DEFAULT CHARSET=utf8", force: :cascade do |t|
t.integer "project_id", default: 0, null: false
t.integer "category_id", default: 0, null: false
t.string "title", limit: 60, default: "", null: false
t.text "description"
t.datetime "created_on"
t.integer "user_id", default: 0
t.integer "is_public", default: 1
t.index ["category_id"], name: "index_documents_on_category_id"
t.index ["created_on"], name: "index_documents_on_created_on"
t.index ["project_id"], name: "documents_project_id"
end
create_table "dts", primary_key: "Num", id: :integer, default: 0, options: "ENGINE=InnoDB DEFAULT CHARSET=utf8", force: :cascade do |t|
t.string "Defect", limit: 50
t.string "Category", limit: 50
t.string "File"
t.string "Method"
t.string "Module", limit: 20
t.string "Variable", limit: 50
t.integer "StartLine"
t.integer "IPLine"
t.string "IPLineCode", limit: 200
t.string "Judge", limit: 15
t.integer "Review", limit: 1
t.string "Description"
t.text "PreConditions", limit: 4294967295
t.text "TraceInfo", limit: 4294967295
t.text "Code", limit: 4294967295
t.integer "project_id"
t.datetime "created_at"
t.datetime "updated_at"
t.integer "id", null: false
end
create_table "ec_achievement_evaluation_relates", id: :integer, options: "ENGINE=InnoDB DEFAULT CHARSET=utf8", force: :cascade do |t|
t.integer "ec_course_achievement_method_id"
t.integer "ec_course_evaluation_subitem_id"
t.datetime "created_at", null: false
t.datetime "updated_at", null: false
t.integer "position"
t.integer "ec_course_target_id"
end
create_table "ec_course_achievement_methods", id: :integer, options: "ENGINE=InnoDB DEFAULT CHARSET=utf8", force: :cascade do |t|
t.integer "ec_course_id"
t.integer "ec_course_evaluation_id"
t.integer "ec_course_evaluation_subitem_id"
t.integer "score"
t.integer "percentage"
t.datetime "created_at", null: false
t.datetime "updated_at", null: false
t.integer "ec_course_target_id"
end
create_table "ec_course_evaluation_subitems", id: :integer, options: "ENGINE=InnoDB DEFAULT CHARSET=utf8", force: :cascade do |t|
t.string "name"
t.integer "ec_course_evaluation_id"
t.datetime "created_at", null: false
t.datetime "updated_at", null: false
end
create_table "ec_course_evaluations", id: :integer, options: "ENGINE=InnoDB DEFAULT CHARSET=utf8", force: :cascade do |t|
t.string "name"
t.integer "evluation_count"
t.integer "status", limit: 1
t.integer "ec_course_id"
t.datetime "created_at", null: false
t.datetime "updated_at", null: false
t.boolean "is_course_type", default: false
t.boolean "import_status", default: false
t.integer "score_type", default: 1
end
create_table "ec_course_student_scores", id: :integer, options: "ENGINE=InnoDB DEFAULT CHARSET=utf8", force: :cascade do |t|
t.integer "ec_course_id"
t.string "student_number"
t.string "student_name"
t.datetime "created_at", null: false
t.datetime "updated_at", null: false
t.integer "ec_year_student_id"
t.index ["ec_year_student_id"], name: "index_ec_course_scores_on_ec_year_student_id"
end
create_table "ec_course_supports", id: :integer, options: "ENGINE=InnoDB DEFAULT CHARSET=utf8", force: :cascade do |t|
t.float "weigths"
t.boolean "top_relation"
t.integer "position", limit: 1
t.datetime "created_at", null: false
t.datetime "updated_at", null: false
t.integer "ec_course_id"
t.integer "ec_graduation_subitem_id"
end
create_table "ec_course_targets", id: :integer, options: "ENGINE=InnoDB DEFAULT CHARSET=utf8", force: :cascade do |t|
t.text "content"
t.integer "standard_grade", default: 75
t.float "weigths"
t.integer "position", limit: 1
t.datetime "created_at", null: false
t.datetime "updated_at", null: false
t.integer "ec_course_id"
end
create_table "ec_course_users", id: :integer, options: "ENGINE=InnoDB DEFAULT CHARSET=utf8", force: :cascade do |t|
t.integer "ec_course_id"
t.integer "user_id"
t.integer "ec_year_id"
t.datetime "created_at", null: false
t.datetime "updated_at", null: false
t.index ["ec_course_id"], name: "index_ec_course_users_on_ec_course_id"
t.index ["ec_year_id"], name: "index_ec_course_users_on_ec_year_id"
t.index ["user_id"], name: "index_ec_course_users_on_user_id"
end
create_table "ec_courses", id: :integer, options: "ENGINE=InnoDB DEFAULT CHARSET=utf8", force: :cascade do |t|
t.string "name"
t.datetime "created_at", null: false
t.datetime "updated_at", null: false
t.integer "ec_year_id"
t.integer "complete_target_count", default: 0
end
create_table "ec_discipline_firsts", id: :integer, options: "ENGINE=InnoDB DEFAULT CHARSET=utf8", force: :cascade do |t|
t.string "name"
t.string "code"
t.integer "ec_discipline_id"
t.datetime "created_at", null: false
t.datetime "updated_at", null: false
end
create_table "ec_disciplines", id: :integer, options: "ENGINE=InnoDB DEFAULT CHARSET=utf8", force: :cascade do |t|
t.string "name"
t.string "code"
t.datetime "created_at", null: false
t.datetime "updated_at", null: false
end
create_table "ec_graduation_requirement_calculations", id: :integer, options: "ENGINE=InnoDB DEFAULT CHARSET=utf8", force: :cascade do |t|
t.integer "ec_course_support_id"
t.float "target_value", default: 0.0
t.float "real_value", default: 0.0
t.boolean "status"
t.datetime "created_at", null: false
t.datetime "updated_at", null: false
end
create_table "ec_graduation_requirements", id: :integer, options: "ENGINE=InnoDB DEFAULT CHARSET=utf8", force: :cascade do |t|
t.text "content"
t.integer "ec_year_id"
t.integer "position"
t.datetime "created_at", null: false
t.datetime "updated_at", null: false
end
create_table "ec_graduation_standards", id: :integer, options: "ENGINE=InnoDB DEFAULT CHARSET=utf8", force: :cascade do |t|
t.text "content"
t.datetime "created_at", null: false
t.datetime "updated_at", null: false
end
create_table "ec_graduation_subitem_course_targets", id: :integer, options: "ENGINE=InnoDB DEFAULT CHARSET=utf8", force: :cascade do |t|
t.integer "ec_graduation_subitem_id"
t.integer "ec_course_target_id"
t.datetime "created_at", null: false
t.datetime "updated_at", null: false
end
create_table "ec_graduation_subitem_courses", id: :integer, options: "ENGINE=InnoDB DEFAULT CHARSET=utf8", force: :cascade do |t|
t.integer "ec_graduation_subitem_id"
t.integer "ec_course_support_id"
t.datetime "created_at", null: false
t.datetime "updated_at", null: false
end
create_table "ec_graduation_subitems", id: :integer, options: "ENGINE=InnoDB DEFAULT CHARSET=utf8", force: :cascade do |t|
t.text "content"
t.integer "ec_graduation_requirement_id"
t.integer "position"
t.datetime "created_at", null: false
t.datetime "updated_at", null: false
end
create_table "ec_major_courses", id: :integer, options: "ENGINE=InnoDB DEFAULT CHARSET=utf8", force: :cascade do |t|
t.integer "course_id"
t.integer "ec_course_id"
t.datetime "created_at", null: false
t.datetime "updated_at", null: false
end
create_table "ec_major_school_users", id: :integer, options: "ENGINE=InnoDB DEFAULT CHARSET=utf8", force: :cascade do |t|
t.integer "ec_major_school_id"
t.integer "user_id"
t.datetime "created_at", null: false
t.datetime "updated_at", null: false
end
create_table "ec_major_schools", id: :integer, options: "ENGINE=InnoDB DEFAULT CHARSET=utf8", force: :cascade do |t|
t.integer "ec_major_id"
t.integer "school_id"
t.datetime "created_at", null: false
t.datetime "updated_at", null: false
t.boolean "template_major", default: false
end
create_table "ec_majors", id: :integer, options: "ENGINE=InnoDB DEFAULT CHARSET=utf8", force: :cascade do |t|
t.string "code"
t.string "name"
t.integer "ec_discipline_first_id"
t.datetime "created_at", null: false
t.datetime "updated_at", null: false
end
create_table "ec_require_sub_vs_standards", id: :integer, options: "ENGINE=InnoDB DEFAULT CHARSET=utf8", force: :cascade do |t|
t.integer "ec_graduation_subitem_id"
t.integer "ec_graduation_standard_id"
t.boolean "status"
t.datetime "created_at", null: false
t.datetime "updated_at", null: false
end
create_table "ec_requirement_vs_objectives", id: :integer, options: "ENGINE=InnoDB DEFAULT CHARSET=utf8", force: :cascade do |t|
t.integer "ec_graduation_requirement_id"
t.integer "ec_training_objective_id"
t.boolean "status"
t.datetime "created_at", null: false
t.datetime "updated_at", null: false
end
create_table "ec_school_users", id: :integer, options: "ENGINE=InnoDB DEFAULT CHARSET=utf8", force: :cascade do |t|
t.integer "user_id"
t.integer "school_id"
t.datetime "created_at", null: false
t.datetime "updated_at", null: false
end
create_table "ec_score_levels", id: :integer, options: "ENGINE=InnoDB DEFAULT CHARSET=utf8", force: :cascade do |t|
t.integer "score"
t.integer "position"
t.string "level"
t.integer "ec_course_id"
t.datetime "created_at", null: false
t.datetime "updated_at", null: false
end
create_table "ec_student_achievements", id: :integer, options: "ENGINE=InnoDB DEFAULT CHARSET=utf8", force: :cascade do |t|
t.integer "ec_course_evaluation_subitem_id"
t.string "student_number"
t.string "student_name"
t.integer "position"
t.datetime "created_at", null: false
t.datetime "updated_at", null: false
t.float "score", default: 0.0
t.integer "ec_course_evaluation_id"
t.integer "ec_year_student_id"
t.index ["ec_course_evaluation_id"], name: "index_ec_student_achievements_on_ec_course_evaluation_id"
t.index ["ec_course_evaluation_subitem_id"], name: "index_ec_student_achievements_on_ec_course_evaluation_subitem_id"
t.index ["ec_year_student_id"], name: "index_ec_student_achievements_on_ec_year_student_id"
end
create_table "ec_student_score_targets", id: :integer, options: "ENGINE=InnoDB DEFAULT CHARSET=utf8", force: :cascade do |t|
t.integer "ec_course_id"
t.integer "ec_course_student_score_id"
t.integer "ec_course_target_id"
t.integer "ec_target_position"
t.float "score"
t.datetime "created_at", null: false
t.datetime "updated_at", null: false
t.integer "eaer_id"
t.integer "ec_year_student_id"
t.index ["ec_year_student_id"], name: "index_ec_student_targets_on_ec_year_student_id"
end
create_table "ec_templates", id: :integer, options: "ENGINE=InnoDB DEFAULT CHARSET=utf8", force: :cascade do |t|
t.string "name"
t.datetime "created_at", null: false
t.datetime "updated_at", null: false
end
create_table "ec_training_objectives", id: :integer, options: "ENGINE=InnoDB DEFAULT CHARSET=utf8", force: :cascade do |t|
t.text "content"
t.integer "ec_year_id"
t.datetime "created_at", null: false
t.datetime "updated_at", null: false
end
create_table "ec_training_subitems", id: :integer, options: "ENGINE=InnoDB DEFAULT CHARSET=utf8", force: :cascade do |t|
t.text "content"
t.integer "ec_training_objective_id"
t.integer "position", limit: 1
t.datetime "created_at", null: false
t.datetime "updated_at", null: false
end
create_table "ec_year_students", id: :integer, options: "ENGINE=InnoDB DEFAULT CHARSET=utf8", force: :cascade do |t|
t.integer "ec_year_id"
t.string "name"
t.string "student_id"
t.string "guarantee_school"
t.string "guarantee_major"
t.datetime "created_at", null: false
t.datetime "updated_at", null: false
t.index ["ec_year_id"], name: "index_ec_year_students_on_ec_year_id"
end
create_table "ec_years", id: :integer, options: "ENGINE=InnoDB DEFAULT CHARSET=utf8", force: :cascade do |t|
t.integer "year"
t.integer "status"
t.datetime "created_at", null: false
t.datetime "updated_at", null: false
t.integer "ec_major_school_id"
t.float "calculation_value", default: 0.7
end
create_table "ecloud_logs", id: :integer, options: "ENGINE=InnoDB DEFAULT CHARSET=utf8", force: :cascade do |t|
t.string "url"
t.string "applyno"
t.integer "custid"
t.string "custcode"
t.text "para_value", limit: 4294967295
t.datetime "created_at", null: false
t.datetime "updated_at", null: false
t.integer "userid"
t.string "username"
end
create_table "ecloud_productparas", id: :integer, options: "ENGINE=InnoDB DEFAULT CHARSET=utf8", force: :cascade do |t|
t.string "key"
t.string "value"
t.integer "ecloud_id"
t.datetime "created_at", null: false
t.datetime "updated_at", null: false
end
create_table "ecloud_services", id: :integer, options: "ENGINE=InnoDB DEFAULT CHARSET=utf8", force: :cascade do |t|
t.integer "opttype"
t.string "code"
t.bigint "begintime"
t.bigint "endtime"
t.integer "ecloud_id"
t.datetime "created_at", null: false
t.datetime "updated_at", null: false
t.string "packagecode"
t.string "bossorderid"
t.string "productcode"
end
create_table "ecloud_serviece_serviceparas", id: :integer, options: "ENGINE=InnoDB DEFAULT CHARSET=utf8", force: :cascade do |t|
t.string "key"
t.string "value"
t.integer "ecloud_service_id"
t.datetime "created_at", null: false
t.datetime "updated_at", null: false
end
create_table "ecloud_user_paras", id: :integer, options: "ENGINE=InnoDB DEFAULT CHARSET=utf8", force: :cascade do |t|
t.string "key"
t.string "value"
t.integer "ecloud_user_id"
t.datetime "created_at", null: false
t.datetime "updated_at", null: false
end
create_table "ecloud_users", id: :integer, options: "ENGINE=InnoDB DEFAULT CHARSET=utf8", force: :cascade do |t|
t.integer "opttype"
t.integer "userid"
t.string "username"
t.string "useralias"
t.string "mobile"
t.string "email"
t.bigint "begintime"
t.bigint "endtime"
t.string "paras"
t.integer "custid"
t.datetime "created_at", null: false
t.datetime "updated_at", null: false
t.integer "ecloud_id"
t.integer "status", limit: 1
t.bigint "operatime"
t.bigint "effecttime"
end
create_table "eclouds", id: :integer, options: "ENGINE=InnoDB DEFAULT CHARSET=utf8", force: :cascade do |t|
t.string "applyno"
t.string "ecordercode"
t.integer "opttype"
t.boolean "trial"
t.string "bossorderid"
t.integer "custid"
t.string "custcode"
t.integer "registersource"
t.integer "custtype"
t.string "custname"
t.integer "userid"
t.string "username"
t.string "useralias"
t.string "mobile"
t.string "productcode"
t.bigint "begintime"
t.bigint "endtime"
t.datetime "created_at", null: false
t.datetime "updated_at", null: false
t.string "email"
t.bigint "operatime"
t.bigint "effecttime"
end
create_table "ecloudusers", id: :integer, options: "ENGINE=InnoDB DEFAULT CHARSET=utf8", force: :cascade do |t|
t.string "applyno"
t.string "ecordercoder"
t.string "string"
t.integer "opttype"
t.boolean "trial"
t.string "bossorderid"
t.integer "custid"
t.string "custcod"
t.integer "custtype"
t.integer "registersource"
t.string "custname"
t.integer "userid"
t.string "username"
t.string "useralias"
t.string "moblile"
t.string "email"
t.string "productcode"
t.datetime "begintime"
t.datetime "endtime"
t.string "productparas"
t.string "services"
t.datetime "created_at", null: false
t.datetime "updated_at", null: false
end
create_table "editor_of_documents", id: :integer, options: "ENGINE=InnoDB DEFAULT CHARSET=utf8", force: :cascade do |t|
t.integer "editor_id"
t.integer "org_document_comment_id"
t.datetime "created_at"
end
create_table "edu_settings", options: "ENGINE=InnoDB DEFAULT CHARSET=utf8", force: :cascade do |t|
t.string "name"
t.string "value"
t.datetime "created_at", null: false
t.datetime "updated_at", null: false
t.string "description"
t.index ["name"], name: "index_edu_settings_on_name", unique: true
end
create_table "enabled_modules", id: :integer, options: "ENGINE=InnoDB DEFAULT CHARSET=utf8", force: :cascade do |t|
t.integer "project_id"
t.string "name", null: false
t.integer "course_id"
t.index ["project_id"], name: "enabled_modules_project_id"
end
create_table "enumerations", id: :integer, options: "ENGINE=InnoDB DEFAULT CHARSET=utf8", force: :cascade do |t|
t.string "name", limit: 30, default: "", null: false
t.integer "position", default: 1
t.boolean "is_default", default: false, null: false
t.string "type"
t.boolean "active", default: true, null: false
t.integer "project_id"
t.integer "parent_id"
t.string "position_name", limit: 30
t.index ["id", "type"], name: "index_enumerations_on_id_and_type"
t.index ["project_id"], name: "index_enumerations_on_project_id"
end
create_table "error_checks", id: :integer, options: "ENGINE=InnoDB DEFAULT CHARSET=utf8", force: :cascade do |t|
t.string "game_indentifier"
t.string "login"
t.string "path"
end
create_table "evaluate_records", id: :integer, options: "ENGINE=InnoDB DEFAULT CHARSET=utf8", force: :cascade do |t|
t.integer "user_id"
t.integer "shixun_id"
t.integer "game_id"
t.float "consume_time"
t.datetime "created_at", null: false
t.datetime "updated_at", null: false
t.float "file_update"
t.float "git_pull"
t.float "create_pod"
t.float "pod_execute"
t.float "student_work"
t.float "test_cases"
t.float "retry"
t.float "game_build"
t.float "return_back"
t.float "brige"
t.datetime "create_status"
t.float "front_js"
t.string "identifier"
t.float "max_mem"
t.integer "exec_time"
t.index ["game_id"], name: "index_evaluate_records_on_game_id"
t.index ["identifier"], name: "index_evaluate_records_on_identifier", unique: true
end
create_table "evaluate_records201905", id: false, options: "ENGINE=InnoDB DEFAULT CHARSET=utf8", force: :cascade do |t|
t.integer "id", default: 0, null: false
t.integer "user_id"
t.integer "shixun_id"
t.integer "game_id"
t.float "consume_time"
t.datetime "created_at", null: false
t.datetime "updated_at", null: false
t.float "file_update"
t.float "git_pull"
t.float "create_pod"
t.float "pod_execute"
t.float "student_work"
t.float "test_cases"
t.float "retry"
t.float "game_build"
t.float "return_back"
t.float "brige"
t.datetime "create_status"
t.float "front_js"
end
create_table "evaluate_records_20181022", id: false, options: "ENGINE=InnoDB DEFAULT CHARSET=utf8", force: :cascade do |t|
t.integer "id", default: 0, null: false
t.integer "user_id"
t.integer "shixun_id"
t.integer "game_id"
t.float "consume_time"
t.datetime "created_at", null: false
t.datetime "updated_at", null: false
t.float "file_update"
t.float "git_pull"
t.float "create_pod"
t.float "pod_execute"
t.float "student_work"
t.float "test_cases"
t.float "retry"
t.float "game_build"
t.float "return_back"
t.float "brige"
t.datetime "create_status"
t.float "front_js"
end
create_table "examination_bank_random_settings", options: "ENGINE=InnoDB DEFAULT CHARSET=utf8", force: :cascade do |t|
t.integer "difficulty", comment: "难度"
t.integer "sub_discipline_id", comment: "课程"
t.integer "quanlity", comment: "题目数量"
t.integer "item_type", comment: "题目类型"
t.integer "examination_bank_id", comment: "外键,关联examination_bank"
t.datetime "created_at", null: false
t.datetime "updated_at", null: false
t.index ["examination_bank_id"], name: "index_examination_bank_random_settings_on_examination_bank_id"
t.index ["item_type"], name: "index_examination_bank_random_settings_on_item_type"
end
create_table "examination_bank_score_settings", options: "ENGINE=InnoDB DEFAULT CHARSET=utf8", force: :cascade do |t|
t.integer "item_type", comment: "题目类型"
t.integer "score", comment: "分数设置"
t.integer "examination_bank_id", comment: "外键,关联examination_bank"
t.datetime "created_at", null: false
t.datetime "updated_at", null: false
t.index ["examination_bank_id"], name: "index_examination_bank_score_settings_on_examination_bank_id"
end
create_table "examination_banks", options: "ENGINE=InnoDB DEFAULT CHARSET=utf8", force: :cascade do |t|
t.string "name"
t.integer "difficulty", default: 1
t.bigint "user_id"
t.boolean "public", default: false
t.integer "quotes", default: 0
t.bigint "sub_discipline_id"
t.integer "duration"
t.datetime "created_at", null: false
t.datetime "updated_at", null: false
t.boolean "intelligent", default: false
t.integer "time", default: -1, comment: "考试时长,默认-1表示没有设置时长"
t.integer "source", default: 1, comment: "试卷来源,默认为仅私有题库"
t.boolean "is_random", default: false, comment: "是否为随机组卷"
t.index ["sub_discipline_id"], name: "index_examination_banks_on_sub_discipline_id"
t.index ["user_id"], name: "index_examination_banks_on_user_id"
end
create_table "examination_intelligent_settings", options: "ENGINE=InnoDB DEFAULT CHARSET=utf8", force: :cascade do |t|
t.bigint "sub_discipline_id"
t.integer "public", default: 1
t.integer "difficulty", default: 1
t.datetime "created_at", null: false
t.datetime "updated_at", null: false
t.integer "user_id"
t.index ["sub_discipline_id"], name: "index_examination_intelligent_settings_on_sub_discipline_id"
t.index ["sub_discipline_id"], name: "index_on_sub_discipline_id"
end
create_table "examination_item_analyses", options: "ENGINE=InnoDB DEFAULT CHARSET=utf8", force: :cascade do |t|
t.bigint "examination_item_id"
t.text "analysis"
t.datetime "created_at", null: false
t.datetime "updated_at", null: false
t.index ["examination_item_id"], name: "index_examination_item_analyses_on_examination_item_id"
end
create_table "examination_item_choices", options: "ENGINE=InnoDB DEFAULT CHARSET=utf8", force: :cascade do |t|
t.bigint "examination_item_id"
t.text "choice_text"
t.boolean "is_answer", default: false
t.datetime "created_at", null: false
t.datetime "updated_at", null: false
t.index ["examination_item_id"], name: "index_examination_item_choices_on_examination_item_id"
end
create_table "examination_items", options: "ENGINE=InnoDB DEFAULT CHARSET=utf8", force: :cascade do |t|
t.bigint "examination_bank_id"
t.bigint "item_bank_id"
t.text "name"
t.integer "item_type", default: 0
t.integer "difficulty", default: 1
t.float "score", default: 0.0
t.integer "position", default: 0
t.datetime "created_at", null: false
t.datetime "updated_at", null: false
t.integer "container_id"
t.string "container_type"
t.boolean "is_ordered", default: true
t.index ["examination_bank_id"], name: "index_examination_items_on_examination_bank_id"
t.index ["item_bank_id"], name: "index_examination_items_on_item_bank_id"
end
create_table "examination_standard_answers", options: "ENGINE=InnoDB DEFAULT CHARSET=utf8", force: :cascade do |t|
t.integer "examination_item_id", comment: "外键,关联examination_item"
t.integer "position", comment: "表示选项的序号,并非外键,相同的position表示,填空题中同一个空的答案"
t.text "answer_text"
t.datetime "created_at", null: false
t.datetime "updated_at", null: false
t.index ["examination_item_id"], name: "index_examination_standard_answers_on_examination_item_id"
end
create_table "examination_type_settings", options: "ENGINE=InnoDB DEFAULT CHARSET=utf8", force: :cascade do |t|
t.bigint "examination_intelligent_setting_id"
t.integer "item_type"
t.integer "count"
t.datetime "created_at", null: false
t.datetime "updated_at", null: false
t.index ["examination_intelligent_setting_id"], name: "index_on_examination_intelligent_setting"
end
create_table "exercise_answer_comments", id: :integer, options: "ENGINE=InnoDB DEFAULT CHARSET=utf8", force: :cascade do |t|
t.integer "exercise_answer_id"
t.integer "user_id"
t.integer "exercise_question_id"
t.text "comment"
t.decimal "score", precision: 10, scale: 1
t.datetime "created_at", null: false
t.datetime "updated_at", null: false
t.integer "exercise_shixun_answer_id"
t.integer "exercise_user_id"
t.index ["exercise_answer_id"], name: "index_exercise_answer_comments_on_exercise_answer_id"
t.index ["exercise_question_id"], name: "index_exercise_answer_comments_on_exercise_question_id"
t.index ["exercise_shixun_answer_id"], name: "exercise_shixun_answer_comment_id"
t.index ["user_id"], name: "index_exercise_answer_comments_on_user_id"
end
create_table "exercise_answers", id: :integer, options: "ENGINE=InnoDB DEFAULT CHARSET=utf8", force: :cascade do |t|
t.integer "user_id"
t.integer "exercise_question_id"
t.integer "exercise_choice_id", default: -1
t.text "answer_text"
t.datetime "created_at", null: false
t.datetime "updated_at", null: false
t.decimal "score", precision: 10, scale: 1, default: "-1.0"
t.integer "choice_index", default: 1
t.index ["exercise_question_id", "user_id", "choice_index"], name: "exercise_user_choice_index", unique: true
end
create_table "exercise_bank_choices", id: :integer, options: "ENGINE=InnoDB DEFAULT CHARSET=utf8", force: :cascade do |t|
t.integer "exercise_bank_question_id"
t.text "choice_text"
t.integer "choice_position"
t.datetime "created_at", null: false
t.datetime "updated_at", null: false
t.index ["exercise_bank_question_id"], name: "index_exercise_bank_choices_on_exercise_bank_question_id"
end
create_table "exercise_bank_questions", id: :integer, options: "ENGINE=InnoDB DEFAULT CHARSET=utf8", force: :cascade do |t|
t.text "question_title"
t.integer "question_type"
t.integer "question_number"
t.decimal "question_score", precision: 10, scale: 1
t.integer "exercise_bank_id"
t.integer "max_choices"
t.integer "min_choices"
t.datetime "created_at", null: false
t.datetime "updated_at", null: false
t.integer "shixun_id"
t.integer "is_necessary", default: 1
t.string "shixun_name"
t.boolean "is_ordered", default: true
t.index ["exercise_bank_id"], name: "index_exercise_bank_questions_on_exercise_bank_id"
end
create_table "exercise_bank_questions_backup", id: :integer, options: "ENGINE=InnoDB DEFAULT CHARSET=utf8", force: :cascade do |t|
t.text "question_title"
t.integer "question_type"
t.integer "question_number"
t.decimal "question_score", precision: 10, scale: 1
t.integer "exercise_bank_id"
t.integer "max_choices"
t.integer "min_choices"
t.datetime "created_at", null: false
t.datetime "updated_at", null: false
t.integer "shixun_id"
t.integer "is_necessary", default: 1
t.string "shixun_name"
t.index ["exercise_bank_id"], name: "index_exercise_bank_questions_on_exercise_bank_id"
end
create_table "exercise_bank_random_settings", options: "ENGINE=InnoDB DEFAULT CHARSET=utf8", force: :cascade do |t|
t.integer "difficulty", comment: "难度"
t.integer "sub_discipline_id", comment: "课程"
t.integer "quanlity", comment: "题目数量"
t.integer "item_type", comment: "题目类型"
t.integer "exercise_bank_id", comment: "外键,关联exercise_bank"
t.datetime "created_at", null: false
t.datetime "updated_at", null: false
t.index ["exercise_bank_id"], name: "index_exercise_bank_random_settings_on_exercise_bank_id"
t.index ["item_type"], name: "index_exercise_bank_random_settings_on_item_type"
end
create_table "exercise_bank_score_settings", options: "ENGINE=InnoDB DEFAULT CHARSET=utf8", force: :cascade do |t|
t.integer "item_type", comment: "题目类型"
t.integer "score", comment: "分数设置"
t.integer "exercise_bank_id", comment: "外键,关联exercise_bank"
t.datetime "created_at", null: false
t.datetime "updated_at", null: false
t.index ["exercise_bank_id"], name: "index_exercise_bank_score_settings_on_exercise_bank_id"
end
create_table "exercise_bank_shixun_challenges", id: :integer, options: "ENGINE=InnoDB DEFAULT CHARSET=utf8", force: :cascade do |t|
t.integer "challenge_id"
t.integer "shixun_id"
t.integer "exercise_bank_question_id"
t.decimal "question_score", precision: 10, scale: 1
t.integer "position"
t.datetime "created_at", null: false
t.datetime "updated_at", null: false
t.index ["challenge_id"], name: "index_exercise_bank_shixun_challenges_on_challenge_id"
t.index ["shixun_id"], name: "index_exercise_bank_shixun_challenges_on_shixun_id"
end
create_table "exercise_bank_standard_answers", id: :integer, options: "ENGINE=InnoDB DEFAULT CHARSET=utf8", force: :cascade do |t|
t.integer "exercise_bank_question_id"
t.integer "exercise_bank_choice_id"
t.text "answer_text"
t.datetime "created_at", null: false
t.datetime "updated_at", null: false
end
create_table "exercise_bank_standard_answers_backup", id: :integer, options: "ENGINE=InnoDB DEFAULT CHARSET=utf8", force: :cascade do |t|
t.integer "exercise_bank_question_id"
t.integer "exercise_bank_choice_id"
t.text "answer_text"
t.datetime "created_at", null: false
t.datetime "updated_at", null: false
end
create_table "exercise_banks", id: :integer, options: "ENGINE=InnoDB DEFAULT CHARSET=utf8", force: :cascade do |t|
t.string "name"
t.text "description"
t.integer "user_id"
t.boolean "is_public"
t.integer "quotes"
t.integer "container_id"
t.string "container_type"
t.integer "course_list_id"
t.datetime "created_at", null: false
t.datetime "updated_at", null: false
t.boolean "is_md", default: true
t.index ["course_list_id"], name: "index_exercise_banks_on_course_list_id"
t.index ["user_id"], name: "index_exercise_banks_on_user_id"
end
create_table "exercise_choices", id: :integer, options: "ENGINE=InnoDB DEFAULT CHARSET=utf8", force: :cascade do |t|
t.integer "exercise_question_id"
t.text "choice_text"
t.integer "choice_position"
t.datetime "created_at", null: false
t.datetime "updated_at", null: false
t.index ["exercise_question_id"], name: "index_exercise_choices_on_exercise_question_id"
end
create_table "exercise_group_settings", id: :integer, options: "ENGINE=InnoDB DEFAULT CHARSET=utf8", force: :cascade do |t|
t.integer "exercise_id"
t.integer "course_group_id"
t.integer "course_id"
t.datetime "publish_time"
t.datetime "end_time"
t.datetime "created_at", null: false
t.datetime "updated_at", null: false
t.index ["course_group_id"], name: "index_exercise_group_settings_on_course_group_id"
t.index ["course_id"], name: "index_exercise_group_settings_on_course_id"
t.index ["exercise_id"], name: "index_exercise_group_settings_on_exercise_id"
end
create_table "exercise_question_analyses", options: "ENGINE=InnoDB DEFAULT CHARSET=utf8", force: :cascade do |t|
t.text "analysis"
t.bigint "exercise_question_id"
t.datetime "created_at", null: false
t.datetime "updated_at", null: false
t.index ["exercise_question_id"], name: "index_exercise_question_analyses_on_exercise_question_id"
end
create_table "exercise_questions", id: :integer, options: "ENGINE=InnoDB DEFAULT CHARSET=utf8", force: :cascade do |t|
t.text "question_title"
t.integer "question_type"
t.integer "question_number"
t.integer "exercise_id"
t.datetime "created_at", null: false
t.datetime "updated_at", null: false
t.decimal "question_score", precision: 10, scale: 1, default: "0.0"
t.integer "shixun_id"
t.string "shixun_name"
t.boolean "is_ordered", default: true
t.integer "hack_id", default: 0
t.index ["exercise_id"], name: "index_exercise_questions_on_exercise_id"
end
create_table "exercise_questions_backup", id: :integer, options: "ENGINE=InnoDB DEFAULT CHARSET=utf8", force: :cascade do |t|
t.text "question_title"
t.integer "question_type"
t.integer "question_number"
t.integer "exercise_id"
t.datetime "created_at", null: false
t.datetime "updated_at", null: false
t.decimal "question_score", precision: 10, scale: 1, default: "0.0"
t.integer "shixun_id"
t.string "shixun_name"
t.boolean "is_ordered", default: true
t.index ["exercise_id"], name: "index_exercise_questions_on_exercise_id"
end
create_table "exercise_random_settings", options: "ENGINE=InnoDB DEFAULT CHARSET=utf8", force: :cascade do |t|
t.integer "difficulty", comment: "难度"
t.integer "sub_discipline_id", comment: "课程"
t.integer "quanlity", comment: "题目数量"
t.integer "item_type", comment: "题目类型"
t.integer "exercise_id", comment: "外键,关联exercise"
t.datetime "created_at", null: false
t.datetime "updated_at", null: false
t.index ["exercise_id"], name: "index_exercise_random_settings_on_exercise_id"
t.index ["item_type"], name: "index_exercise_random_settings_on_item_type"
end
create_table "exercise_score_settings", options: "ENGINE=InnoDB DEFAULT CHARSET=utf8", force: :cascade do |t|
t.integer "item_type", comment: "题目类型"
t.integer "score", comment: "分数设置"
t.integer "exercise_id", comment: "外键,关联exercise"
t.datetime "created_at", null: false
t.datetime "updated_at", null: false
t.index ["exercise_id"], name: "index_exercise_score_settings_on_exercise_id"
end
create_table "exercise_shixun_answers", id: :integer, options: "ENGINE=InnoDB DEFAULT CHARSET=utf8", force: :cascade do |t|
t.integer "exercise_question_id"
t.integer "user_id"
t.integer "exercise_shixun_challenge_id"
t.text "answer_text"
t.decimal "score", precision: 10, scale: 1
t.integer "status"
t.datetime "created_at", null: false
t.datetime "updated_at", null: false
t.boolean "is_invalid", default: false
t.index ["exercise_question_id", "user_id"], name: "exercise_question_id_user_id"
t.index ["user_id", "exercise_shixun_challenge_id"], name: "index_user_id_and_exercise_shixun_challenge_id", unique: true
end
create_table "exercise_shixun_challenges", id: :integer, options: "ENGINE=InnoDB DEFAULT CHARSET=utf8", force: :cascade do |t|
t.integer "challenge_id"
t.integer "shixun_id"
t.integer "exercise_question_id"
t.decimal "question_score", precision: 10, scale: 1, default: "0.0"
t.integer "position"
t.datetime "created_at", null: false
t.datetime "updated_at", null: false
t.index ["challenge_id"], name: "index_exercise_shixun_challenges_on_challenge_id"
t.index ["exercise_question_id"], name: "index_exercise_shixun_challenges_on_exercise_question_id"
end
create_table "exercise_standard_answers", id: :integer, options: "ENGINE=InnoDB DEFAULT CHARSET=utf8", force: :cascade do |t|
t.integer "exercise_question_id"
t.integer "exercise_choice_id"
t.text "answer_text"
t.datetime "created_at", null: false
t.datetime "updated_at", null: false
t.index ["exercise_question_id"], name: "index_exercise_standard_answers_on_exercise_question_id"
end
create_table "exercise_user_questions", options: "ENGINE=InnoDB DEFAULT CHARSET=utf8", force: :cascade do |t|
t.integer "exercise_id"
t.integer "exercise_user_id"
t.integer "user_id"
t.integer "exercise_question_id"
t.datetime "created_at", null: false
t.datetime "updated_at", null: false
t.index ["exercise_id"], name: "index_exercise_user_questions_on_exercise_id"
t.index ["exercise_question_id"], name: "index_exercise_user_questions_on_exercise_question_id"
t.index ["exercise_user_id", "exercise_question_id"], name: "index_on_user_question", unique: true
t.index ["exercise_user_id"], name: "index_exercise_user_questions_on_exercise_user_id"
t.index ["user_id"], name: "index_exercise_user_questions_on_user_id"
end
create_table "exercise_user_scores", options: "ENGINE=InnoDB DEFAULT CHARSET=utf8", force: :cascade do |t|
t.bigint "exercise_id"
t.bigint "exercise_user_id"
t.float "score"
t.text "comment"
t.bigint "user_id"
t.datetime "created_at", null: false
t.datetime "updated_at", null: false
t.float "subjective_score", default: 0.0
t.float "objective_score", default: 0.0
t.index ["exercise_id"], name: "index_exercise_user_scores_on_exercise_id"
t.index ["exercise_user_id"], name: "index_exercise_user_scores_on_exercise_user_id"
t.index ["user_id"], name: "index_exercise_user_scores_on_user_id"
end
create_table "exercise_users", id: :integer, options: "ENGINE=InnoDB DEFAULT CHARSET=utf8", force: :cascade do |t|
t.integer "user_id"
t.integer "exercise_id"
t.decimal "score", precision: 10, scale: 1
t.datetime "start_at"
t.datetime "created_at", null: false
t.datetime "updated_at", null: false
t.datetime "end_at"
t.integer "status"
t.integer "commit_status", default: 0
t.decimal "objective_score", precision: 10, scale: 1, default: "0.0"
t.decimal "subjective_score", precision: 10, scale: 1, default: "-1.0"
t.boolean "is_delete", default: false
t.integer "commit_method", default: 0
t.boolean "subjective_reviewed", default: false
t.boolean "reviewed", default: false
t.index ["exercise_id", "user_id"], name: "index_on_exercise_id_user_id", unique: true
end
create_table "exercises", id: :integer, options: "ENGINE=InnoDB DEFAULT CHARSET=utf8", force: :cascade do |t|
t.text "exercise_name"
t.text "exercise_description"
t.integer "course_id"
t.integer "exercise_status", default: 1
t.integer "user_id"
t.integer "time", default: -1
t.datetime "created_at", null: false
t.datetime "updated_at", null: false
t.datetime "publish_time"
t.datetime "end_time"
t.integer "show_result", default: 0
t.boolean "question_random", default: true
t.boolean "choice_random", default: true
t.boolean "is_public", default: false
t.boolean "score_open", default: false
t.boolean "answer_open", default: false
t.integer "exercise_bank_id"
t.boolean "unified_setting", default: true
t.boolean "show_statistic", default: false
t.boolean "assistant_auth", default: true
t.integer "examination_bank_id", default: 0
t.boolean "is_md", default: true
t.integer "source", default: 1, comment: "试卷来源,默认为仅私有题库"
t.boolean "is_random", default: false, comment: "是否为随机组卷"
t.integer "difficulty", comment: "试卷难度(来自于随机组卷)"
t.index ["course_id"], name: "index_exercises_on_course_id"
end
create_table "experiences", id: :integer, options: "ENGINE=InnoDB DEFAULT CHARSET=utf8", force: :cascade do |t|
t.integer "user_id"
t.integer "container_id"
t.string "container_type"
t.integer "score"
t.datetime "created_at", null: false
t.datetime "updated_at", null: false
t.index ["container_id", "user_id"], name: "exper"
end
create_table "first_level_disciplines", id: :integer, options: "ENGINE=InnoDB DEFAULT CHARSET=utf8", force: :cascade do |t|
t.integer "discipline_category_id"
t.string "name"
t.index ["discipline_category_id"], name: "index_first_level_disciplines_on_discipline_category_id"
end
create_table "first_pages", id: :integer, options: "ENGINE=InnoDB DEFAULT CHARSET=utf8", force: :cascade do |t|
t.string "web_title"
t.string "title"
t.text "description"
t.string "page_type"
t.datetime "created_at", null: false
t.datetime "updated_at", null: false
t.integer "sort_type"
t.integer "image_width", default: 107
t.integer "image_height", default: 63
t.integer "show_course", default: 1
t.integer "show_contest", default: 1
end
create_table "forge_activities", id: :integer, options: "ENGINE=InnoDB DEFAULT CHARSET=utf8", force: :cascade do |t|
t.integer "user_id"
t.integer "project_id"
t.integer "forge_act_id"
t.string "forge_act_type"
t.integer "org_id"
t.datetime "created_at", null: false
t.datetime "updated_at", null: false
t.index ["forge_act_id"], name: "index_forge_activities_on_forge_act_id"
t.index ["project_id", "forge_act_id", "created_at", "forge_act_type"], name: "forge_act_index"
end
create_table "forge_messages", id: :integer, options: "ENGINE=InnoDB DEFAULT CHARSET=utf8", force: :cascade do |t|
t.integer "user_id"
t.integer "project_id"
t.integer "forge_message_id"
t.string "forge_message_type"
t.integer "viewed"
t.datetime "created_at", null: false
t.datetime "updated_at", null: false
t.string "secret_key"
t.integer "status"
t.integer "operate_user_id"
t.index ["forge_message_id", "forge_message_type"], name: "index_forge_messages_on_forge_message_id_and_forge_message_type"
t.index ["user_id", "project_id", "created_at"], name: "index_forge_messages_on_user_id_and_project_id_and_created_at"
end
create_table "forums", id: :integer, options: "ENGINE=InnoDB DEFAULT CHARSET=utf8", force: :cascade do |t|
t.string "name", null: false
t.text "description"
t.integer "topic_count", default: 0
t.integer "memo_count", default: 0
t.integer "last_memo_id", default: 0
t.integer "creator_id", null: false
t.datetime "created_at", null: false
t.datetime "updated_at", null: false
t.integer "sticky"
t.integer "locked"
t.integer "visits", default: 0
end
create_table "forwards", id: :integer, options: "ENGINE=InnoDB DEFAULT CHARSET=utf8", force: :cascade do |t|
t.integer "from_id"
t.string "from_type"
t.integer "to_id"
t.string "to_type"
t.datetime "created_at"
end
create_table "game_answers", options: "ENGINE=InnoDB DEFAULT CHARSET=utf8", force: :cascade do |t|
t.bigint "challenge_answer_id"
t.bigint "user_id"
t.bigint "game_id"
t.datetime "view_time"
t.datetime "created_at", null: false
t.datetime "updated_at", null: false
t.index ["challenge_answer_id", "user_id"], name: "index_game_answers_on_challenge_answer_id_and_user_id", unique: true
t.index ["challenge_answer_id"], name: "index_game_answers_on_challenge_answer_id"
t.index ["game_id"], name: "index_game_answers_on_game_id"
t.index ["user_id"], name: "index_game_answers_on_user_id"
end
create_table "game_codes", id: :integer, options: "ENGINE=InnoDB DEFAULT CHARSET=utf8", force: :cascade do |t|
t.integer "game_id"
t.text "original_code", limit: 4294967295
t.text "new_code", limit: 4294967295
t.string "path"
t.datetime "created_at", null: false
t.datetime "updated_at", null: false
t.text "current_code", limit: 4294967295
t.integer "votes", default: 0
t.index ["game_id"], name: "game_id"
end
create_table "game_outputs", id: :integer, options: "ENGINE=InnoDB DEFAULT CHARSET=utf8", force: :cascade do |t|
t.integer "code"
t.integer "game_id"
t.text "msg"
t.text "out_put"
t.datetime "created_at", null: false
t.datetime "updated_at", null: false
end
create_table "games", id: :integer, options: "ENGINE=InnoDB DEFAULT CHARSET=utf8", force: :cascade do |t|
t.integer "myshixun_id"
t.integer "user_id"
t.datetime "created_at", null: false
t.datetime "updated_at", null: false
t.integer "status", default: 0
t.integer "final_score", default: 0
t.integer "challenge_id"
t.datetime "open_time"
t.string "identifier"
t.integer "answer_open", default: 0
t.datetime "end_time"
t.integer "retry_status", default: 0
t.string "resubmit_identifier"
t.boolean "test_sets_view", default: false
t.text "picture_path"
t.float "accuracy"
t.datetime "modify_time"
t.integer "star", default: 0
t.integer "cost_time", default: 0
t.integer "evaluate_count", default: 0
t.integer "answer_deduction", default: 0
t.timestamp "play_time"
t.integer "play_sign", default: 0
t.index ["challenge_id"], name: "challenge"
t.index ["identifier"], name: "index_games_on_identifier"
t.index ["myshixun_id"], name: "myshixun"
t.index ["user_id", "challenge_id"], name: "index_games_on_user_id_and_challenge_id", unique: true
t.index ["user_id"], name: "index_games_on_user_id"
end
create_table "gitlab_urls", id: :integer, options: "ENGINE=InnoDB DEFAULT CHARSET=utf8", force: :cascade do |t|
t.integer "myshixun_id"
t.string "url"
t.string "myshixun_identifier"
t.datetime "created_at", null: false
t.datetime "updated_at", null: false
end
create_table "grades", id: :integer, options: "ENGINE=InnoDB DEFAULT CHARSET=utf8", force: :cascade do |t|
t.integer "user_id"
t.integer "container_id"
t.string "container_type"
t.integer "score"
t.datetime "created_at", null: false
t.datetime "updated_at", null: false
t.index ["container_id", "container_type"], name: "index_grades_on_container_id_and_container_type"
t.index ["user_id"], name: "index_grades_on_user_id"
end
create_table "graduation_groups", id: :integer, options: "ENGINE=InnoDB DEFAULT CHARSET=utf8", force: :cascade do |t|
t.integer "course_id"
t.integer "user_id"
t.string "name"
t.datetime "created_at", null: false
t.datetime "updated_at", null: false
t.index ["course_id"], name: "index_graduation_groups_on_course_id"
t.index ["user_id"], name: "index_graduation_groups_on_user_id"
end
create_table "graduation_task_group_assignations", id: :integer, options: "ENGINE=InnoDB DEFAULT CHARSET=utf8", force: :cascade do |t|
t.integer "graduation_task_id"
t.integer "graduation_group_id"
t.integer "assign_graduation_group_id"
t.datetime "created_at", null: false
t.datetime "updated_at", null: false
t.integer "graduation_work_id", default: 0
t.integer "temporary", default: 0
t.index ["graduation_group_id"], name: "index_graduation_task_group_assignations_on_graduation_group_id"
t.index ["graduation_task_id"], name: "index_graduation_task_group_assignations_on_graduation_task_id"
t.index ["graduation_work_id"], name: "index_graduation_task_group_assignations_on_graduation_work_id"
end
create_table "graduation_tasks", id: :integer, options: "ENGINE=InnoDB DEFAULT CHARSET=utf8", force: :cascade do |t|
t.string "name"
t.integer "user_id"
t.text "description"
t.integer "status", default: 0
t.datetime "publish_time"
t.datetime "end_time"
t.integer "task_type", default: 1
t.integer "course_id"
t.boolean "cross_comment", default: false
t.integer "min_num", default: 2
t.integer "max_num", default: 5
t.boolean "base_on_project", default: false
t.boolean "allow_late", default: false
t.integer "late_penalty", default: 0
t.datetime "comment_time"
t.integer "comment_num", default: 3
t.integer "comment_status", default: 0
t.boolean "open_work", default: false
t.boolean "open_score", default: false
t.datetime "created_at", null: false
t.datetime "updated_at", null: false
t.boolean "is_public", default: false
t.datetime "late_time"
t.integer "gtask_bank_id"
t.index ["course_id"], name: "index_graduation_tasks_on_course_id"
end
create_table "graduation_topics", id: :integer, options: "ENGINE=InnoDB DEFAULT CHARSET=utf8", force: :cascade do |t|
t.integer "user_id"
t.integer "course_id"
t.integer "tea_id"
t.string "name"
t.text "description"
t.integer "status", default: 0
t.integer "topic_type"
t.integer "topic_source"
t.integer "topic_property_first"
t.integer "topic_property_second"
t.string "source_unit"
t.integer "topic_repeat"
t.string "province"
t.string "city"
t.boolean "is_public", default: false
t.datetime "created_at", null: false
t.datetime "updated_at", null: false
t.integer "quotes", default: 0
t.integer "gtopic_bank_id"
t.index ["course_id"], name: "index_graduation_topics_on_course_id"
end
create_table "graduation_work_comment_assignations", id: :integer, options: "ENGINE=InnoDB DEFAULT CHARSET=utf8", force: :cascade do |t|
t.integer "graduation_work_id"
t.integer "graduation_task_id"
t.integer "user_id"
t.integer "graduation_group_id"
t.datetime "created_at", null: false
t.datetime "updated_at", null: false
t.integer "temporary", default: 0
t.index ["graduation_task_id"], name: "index_graduation_work_comment_assignations_on_graduation_task_id"
t.index ["graduation_work_id"], name: "index_graduation_work_comment_assignations_on_graduation_work_id"
t.index ["user_id"], name: "index_graduation_work_comment_assignations_on_user_id"
end
create_table "graduation_work_scores", id: :integer, options: "ENGINE=InnoDB DEFAULT CHARSET=utf8", force: :cascade do |t|
t.integer "graduation_work_id"
t.integer "user_id"
t.integer "graduation_task_id"
t.float "score"
t.text "comment"
t.integer "reviewer_role"
t.boolean "is_hidden", default: false
t.boolean "is_ultimate", default: false
t.datetime "created_at", null: false
t.datetime "updated_at", null: false
t.boolean "is_invalid", default: false
t.index ["graduation_work_id"], name: "index_graduation_work_scores_on_graduation_work_id"
t.index ["user_id"], name: "index_graduation_work_scores_on_user_id"
end
create_table "graduation_works", id: :integer, options: "ENGINE=InnoDB DEFAULT CHARSET=utf8", force: :cascade do |t|
t.integer "user_id"
t.integer "graduation_task_id"
t.text "description"
t.integer "course_id"
t.float "teacher_score"
t.float "cross_score"
t.float "work_score"
t.integer "project_id", default: 0
t.integer "late_penalty", default: 0
t.integer "work_status", default: 0
t.datetime "commit_time"
t.integer "group_id", default: 0
t.integer "commit_user_id"
t.boolean "ultimate_score", default: false
t.datetime "created_at", null: false
t.datetime "updated_at", null: false
t.float "final_score"
t.datetime "update_time"
t.boolean "is_delete", default: false
t.integer "update_user_id"
t.index ["graduation_task_id", "user_id"], name: "index_graduation_task_id_and_user_id", unique: true
end
create_table "groups_users", id: false, options: "ENGINE=InnoDB DEFAULT CHARSET=utf8", force: :cascade do |t|
t.integer "group_id", null: false
t.integer "user_id", null: false
t.index ["group_id", "user_id"], name: "groups_users_ids", unique: true
end
create_table "gtask_banks", options: "ENGINE=InnoDB DEFAULT CHARSET=utf8", force: :cascade do |t|
t.bigint "user_id"
t.string "name"
t.text "description"
t.integer "task_type"
t.integer "min_num", default: 0
t.integer "max_num", default: 0
t.integer "base_on_project", default: 0
t.boolean "is_public", default: false
t.integer "quotes", default: 0
t.bigint "graduation_task_id"
t.bigint "course_list_id"
t.datetime "created_at", null: false
t.datetime "updated_at", null: false
t.index ["course_list_id"], name: "index_gtask_banks_on_course_list_id"
t.index ["graduation_task_id"], name: "index_gtask_banks_on_graduation_task_id"
t.index ["user_id"], name: "index_gtask_banks_on_user_id"
end
create_table "gtopic_banks", options: "ENGINE=InnoDB DEFAULT CHARSET=utf8", force: :cascade do |t|
t.bigint "user_id"
t.string "name"
t.text "description"
t.integer "quotes", default: 0
t.boolean "is_public", default: false
t.integer "topic_type"
t.integer "topic_source"
t.integer "topic_property_first"
t.integer "topic_property_second"
t.string "source_unit"
t.integer "topic_repeat"
t.string "province"
t.string "city"
t.bigint "graduation_topic_id"
t.bigint "course_list_id"
t.datetime "created_at", null: false
t.datetime "updated_at", null: false
t.index ["course_list_id"], name: "index_gtopic_banks_on_course_list_id"
t.index ["graduation_topic_id"], name: "index_gtopic_banks_on_graduation_topic_id"
t.index ["user_id"], name: "index_gtopic_banks_on_user_id"
end
create_table "hack_codes", options: "ENGINE=InnoDB DEFAULT CHARSET=utf8", force: :cascade do |t|
t.bigint "hack_id"
t.text "code", limit: 4294967295
t.string "language"
t.datetime "created_at", null: false
t.datetime "updated_at", null: false
t.timestamp "modify_time"
t.index ["hack_id", "language"], name: "index_hack_codes_on_hack_id_and_language", unique: true
t.index ["hack_id"], name: "index_hack_codes_on_hack_id"
end
create_table "hack_sets", options: "ENGINE=InnoDB DEFAULT CHARSET=utf8", force: :cascade do |t|
t.bigint "hack_id"
t.text "input"
t.text "output"
t.integer "position"
t.datetime "created_at", null: false
t.datetime "updated_at", null: false
t.integer "score"
t.index ["hack_id", "position"], name: "index_hack_sets_on_hack_id_and_position", unique: true
t.index ["hack_id"], name: "index_hack_sets_on_hack_id"
end
create_table "hack_user_codes", options: "ENGINE=InnoDB DEFAULT CHARSET=utf8", force: :cascade do |t|
t.bigint "user_id"
t.bigint "hack_id"
t.text "code", limit: 4294967295
t.text "output"
t.text "error_msg"
t.integer "error_line"
t.integer "position"
t.integer "status", default: 0
t.integer "query_index"
t.datetime "created_at", null: false
t.datetime "updated_at", null: false
t.float "execute_time"
t.integer "execute_memory"
t.text "input"
t.integer "hack_user_lastest_code_id"
t.text "expected_output"
t.integer "error_test_set_id"
t.string "language"
t.index ["hack_id"], name: "index_hack_user_codes_on_hack_id"
t.index ["hack_user_lastest_code_id"], name: "index_hack_user_codes_on_hack_user_lastest_code_id"
t.index ["user_id", "hack_id", "query_index"], name: "index_hack_user_codes_on_user_id_and_hack_id_and_query_index", unique: true
t.index ["user_id"], name: "index_hack_user_codes_on_user_id"
end
create_table "hack_user_debugs", options: "ENGINE=InnoDB DEFAULT CHARSET=utf8", force: :cascade do |t|
t.bigint "user_id"
t.bigint "hack_id"
t.text "output"
t.text "input"
t.text "error_msg"
t.integer "error_line"
t.datetime "created_at", null: false
t.datetime "updated_at", null: false
t.float "execute_time"
t.integer "execute_memory"
t.integer "hack_user_lastest_code_id"
t.integer "status"
t.text "code", limit: 4294967295
t.index ["hack_id"], name: "index_hack_user_debugs_on_hack_id"
t.index ["hack_user_lastest_code_id"], name: "index_hack_user_debugs_on_hack_user_lastest_code_id", unique: true
t.index ["user_id"], name: "index_hack_user_debugs_on_user_id"
end
create_table "hack_user_lastest_codes", options: "ENGINE=InnoDB DEFAULT CHARSET=utf8", force: :cascade do |t|
t.bigint "user_id"
t.bigint "hack_id"
t.text "code", limit: 4294967295
t.datetime "created_at", null: false
t.datetime "updated_at", null: false
t.boolean "passed", default: false
t.string "identifier"
t.string "language"
t.integer "submit_status", default: 0
t.integer "status"
t.timestamp "passed_time"
t.timestamp "modify_time"
t.text "notes", limit: 4294967295
t.integer "score", default: 0
t.index ["hack_id"], name: "hack_index"
t.index ["hack_id"], name: "index_hack_user_lastest_codes_on_hack_id"
t.index ["identifier"], name: "index_hack_user_lastest_codes_on_identifier", unique: true
t.index ["user_id", "hack_id"], name: "index_hack_user_lastest_codes_on_user_id_and_hack_id", unique: true
t.index ["user_id"], name: "index_hack_user_lastest_codes_on_user_id"
t.index ["user_id"], name: "user_index"
end
create_table "hack_users", options: "ENGINE=InnoDB DEFAULT CHARSET=utf8", force: :cascade do |t|
t.bigint "user_id"
t.bigint "trustie_hack_id"
t.datetime "created_at", null: false
t.datetime "updated_at", null: false
t.index ["trustie_hack_id"], name: "index_hack_users_on_trustie_hack_id"
t.index ["user_id", "trustie_hack_id"], name: "index_hack_users_on_user_id_and_trustie_hack_id", unique: true
t.index ["user_id"], name: "index_hack_users_on_user_id"
end
create_table "hacks", options: "ENGINE=InnoDB DEFAULT CHARSET=utf8", force: :cascade do |t|
t.string "name"
t.integer "difficult"
t.integer "category"
t.integer "status", default: 0
t.boolean "open_or_not", default: false
t.integer "time_limit"
t.integer "memory_limit"
t.string "identifier"
t.bigint "user_id"
t.text "description", limit: 4294967295
t.datetime "created_at", null: false
t.datetime "updated_at", null: false
t.integer "score"
t.integer "hack_user_lastest_codes_count", default: 0
t.integer "pass_num", default: 0
t.integer "submit_num", default: 0
t.integer "praises_count", default: 0
t.integer "comments_count", default: 0
t.integer "sub_discipline_id"
t.integer "fork_id", default: 0
t.boolean "test_set_score", default: false
t.boolean "test_set_average", default: true
t.index ["identifier"], name: "index_hacks_on_identifier", unique: true
t.index ["user_id"], name: "index_hacks_on_user_id"
end
create_table "helps", id: :integer, options: "ENGINE=InnoDB DEFAULT CHARSET=utf8", force: :cascade do |t|
t.datetime "created_at", null: false
t.datetime "updated_at", null: false
t.text "about_us"
t.text "agreement"
t.text "status"
t.text "help_center"
end
create_table "homepages", id: :integer, options: "ENGINE=InnoDB DEFAULT CHARSET=utf8", force: :cascade do |t|
t.string "name"
t.integer "article_id"
t.integer "user_id"
t.datetime "created_at", null: false
t.datetime "updated_at", null: false
t.index ["user_id"], name: "index_homepages_on_user_id"
end
create_table "homework_attaches", id: :integer, options: "ENGINE=InnoDB DEFAULT CHARSET=utf8", force: :cascade do |t|
t.integer "bid_id"
t.integer "user_id"
t.datetime "created_at", null: false
t.datetime "updated_at", null: false
t.string "reward"
t.string "name"
t.text "description"
t.integer "state"
t.integer "project_id", default: 0
t.float "score", default: 0.0
t.integer "is_teacher_score", default: 0
t.index ["bid_id"], name: "index_homework_attaches_on_bid_id"
end
create_table "homework_bank_samples", id: :integer, options: "ENGINE=InnoDB DEFAULT CHARSET=utf8", force: :cascade do |t|
t.text "input"
t.text "output"
t.integer "homework_bank_id"
t.datetime "created_at", null: false
t.datetime "updated_at", null: false
t.index ["homework_bank_id"], name: "index_homework_bank_samples_on_homework_bank_id"
end
create_table "homework_bank_shixuns", id: :integer, options: "ENGINE=InnoDB DEFAULT CHARSET=utf8", force: :cascade do |t|
t.integer "homework_bank_id"
t.integer "shixun_id"
t.datetime "created_at", null: false
t.datetime "updated_at", null: false
t.index ["homework_bank_id"], name: "index_homework_bank_shixuns_on_homework_bank_id"
t.index ["shixun_id"], name: "index_homework_bank_shixuns_on_shixun_id"
end
create_table "homework_bank_tests", id: :integer, options: "ENGINE=InnoDB DEFAULT CHARSET=utf8", force: :cascade do |t|
t.text "input"
t.text "output"
t.boolean "test_type"
t.integer "homework_bank_id"
t.datetime "created_at", null: false
t.datetime "updated_at", null: false
end
create_table "homework_banks", id: :integer, options: "ENGINE=InnoDB DEFAULT CHARSET=utf8", force: :cascade do |t|
t.integer "user_id"
t.string "name"
t.text "description"
t.integer "homework_type"
t.integer "quotes", default: 0
t.boolean "is_public"
t.string "language"
t.text "standard_code", limit: 4294967295
t.integer "min_num"
t.integer "max_num"
t.boolean "base_on_project"
t.string "applicable_syllabus"
t.integer "homework_common_id"
t.datetime "created_at", null: false
t.datetime "updated_at", null: false
t.text "reference_answer"
t.integer "syllabus_id"
t.text "major_level"
t.text "discipline_category_id"
t.text "first_level_discipline_id"
t.integer "course_list_id"
t.index ["user_id"], name: "index_homework_banks_on_user_id"
end
create_table "homework_challenge_settings", id: :integer, options: "ENGINE=InnoDB DEFAULT CHARSET=utf8", force: :cascade do |t|
t.integer "homework_common_id"
t.integer "challenge_id"
t.integer "shixun_id"
t.float "score"
t.datetime "created_at", null: false
t.datetime "updated_at", null: false
t.index ["challenge_id"], name: "index_homework_challenge_settings_on_challenge_id"
t.index ["homework_common_id", "challenge_id"], name: "index_on_homework_common_id_challenge_id", unique: true
t.index ["homework_common_id"], name: "index_homework_challenge_settings_on_homework_common_id"
end
create_table "homework_commons", id: :integer, options: "ENGINE=InnoDB DEFAULT CHARSET=utf8", force: :cascade do |t|
t.string "name"
t.integer "user_id"
t.text "description"
t.datetime "publish_time"
t.datetime "end_time"
t.integer "homework_type", default: 1
t.string "late_penalty", default: "0"
t.integer "course_id"
t.datetime "created_at", null: false
t.datetime "updated_at", null: false
t.integer "teacher_priority", default: 1
t.boolean "anonymous_comment", default: false
t.integer "quotes", default: 0
t.integer "is_open", default: 0
t.datetime "simi_time"
t.boolean "score_open", default: false
t.boolean "anonymous_appeal", default: false
t.integer "homework_bank_id"
t.boolean "is_update", default: false
t.boolean "is_public", default: false
t.text "reference_answer"
t.boolean "answer_public", default: false
t.datetime "archive_time"
t.boolean "allow_late", default: false
t.datetime "late_time"
t.boolean "work_public", default: false
t.text "explanation"
t.boolean "unified_setting", default: true
t.boolean "comment_public", default: true
t.integer "course_homework_category_id"
t.boolean "work_efficiency", default: false
t.float "eff_score", default: 0.0
t.float "max_efficiency", default: 0.0
t.integer "course_second_category_id", default: 0
t.datetime "calculation_time"
t.integer "position", default: 0
t.float "total_score", default: 100.0
t.index ["course_id", "id"], name: "index_homework_commons_on_course_id_and_id"
t.index ["course_second_category_id"], name: "index_homework_commons_on_course_second_category_id"
t.index ["homework_bank_id"], name: "index_homework_commons_on_homework_bank_id"
end
create_table "homework_commons_shixuns", id: :integer, options: "ENGINE=InnoDB DEFAULT CHARSET=utf8", force: :cascade do |t|
t.integer "shixun_id"
t.integer "homework_common_id"
t.datetime "created_at", null: false
t.datetime "updated_at", null: false
t.index ["homework_common_id"], name: "index_homework_commons_shixuns_on_homework_common_id"
end
create_table "homework_detail_groups", id: :integer, options: "ENGINE=InnoDB DEFAULT CHARSET=utf8", force: :cascade do |t|
t.integer "homework_common_id"
t.integer "min_num"
t.integer "max_num"
t.boolean "base_on_project", default: true
t.datetime "created_at", null: false
t.datetime "updated_at", null: false
t.index ["homework_common_id"], name: "index_homework_detail_groups_on_homework_common_id"
end
create_table "homework_detail_manuals", id: :integer, options: "ENGINE=InnoDB DEFAULT CHARSET=utf8", force: :cascade do |t|
t.float "ta_proportion", default: 0.0
t.integer "comment_status", default: 0
t.datetime "evaluation_start"
t.datetime "evaluation_end"
t.integer "evaluation_num", default: 0
t.integer "absence_penalty", default: 0
t.integer "homework_common_id"
t.datetime "created_at", null: false
t.datetime "updated_at", null: false
t.integer "no_anon_penalty", default: 1
t.integer "appeal_penalty", default: 0
t.integer "ta_mode", default: 1
t.datetime "appeal_time"
t.float "te_proportion", default: 1.0
t.boolean "final_mode", default: false
t.boolean "answer_open_evaluation", default: false
t.integer "shixun_evaluation", default: 0
t.boolean "student_comment", default: true
t.index ["homework_common_id"], name: "index_homework_detail_manuals_on_homework_common_id"
end
create_table "homework_detail_programings", id: :integer, options: "ENGINE=InnoDB DEFAULT CHARSET=utf8", force: :cascade do |t|
t.string "language"
t.text "standard_code", limit: 4294967295
t.integer "homework_common_id"
t.datetime "created_at", null: false
t.datetime "updated_at", null: false
t.float "ta_proportion", default: 0.1
t.integer "question_id"
end
create_table "homework_evaluations", id: :integer, options: "ENGINE=InnoDB DEFAULT CHARSET=utf8", force: :cascade do |t|
t.string "user_id"
t.string "homework_attach_id"
t.datetime "created_at", null: false
t.datetime "updated_at", null: false
end
create_table "homework_for_courses", id: :integer, options: "ENGINE=InnoDB DEFAULT CHARSET=utf8", force: :cascade do |t|
t.integer "course_id"
t.integer "bid_id"
t.index ["bid_id"], name: "index_homework_for_courses_on_bid_id"
t.index ["course_id"], name: "index_homework_for_courses_on_course_id"
end
create_table "homework_group_reviews", id: :integer, options: "ENGINE=InnoDB DEFAULT CHARSET=utf8", force: :cascade do |t|
t.integer "homework_common_id"
t.integer "course_group_id"
t.integer "user_id"
t.integer "status", default: 0
t.string "query_id"
t.datetime "created_at", null: false
t.datetime "updated_at", null: false
t.index ["course_group_id"], name: "index_homework_group_reviews_on_course_group_id"
t.index ["homework_common_id"], name: "index_homework_group_reviews_on_homework_common_id"
t.index ["user_id"], name: "index_homework_group_reviews_on_user_id"
end
create_table "homework_group_settings", id: :integer, options: "ENGINE=InnoDB DEFAULT CHARSET=utf8", force: :cascade do |t|
t.integer "homework_common_id"
t.integer "course_group_id"
t.integer "course_id"
t.datetime "publish_time"
t.datetime "end_time"
t.datetime "created_at", null: false
t.datetime "updated_at", null: false
t.index ["course_group_id"], name: "index_homework_group_settings_on_course_group_id"
t.index ["course_id"], name: "index_homework_group_settings_on_course_id"
t.index ["homework_common_id"], name: "index_homework_group_settings_on_homework_common_id"
end
create_table "homework_reference_answers", id: :integer, options: "ENGINE=InnoDB DEFAULT CHARSET=utf8", force: :cascade do |t|
t.text "answer"
t.integer "homework_common_id"
t.datetime "created_at", null: false
t.datetime "updated_at", null: false
t.index ["homework_common_id"], name: "index_homework_reference_answers_on_homework_common_id"
end
create_table "homework_review_results", id: :integer, options: "ENGINE=InnoDB DEFAULT CHARSET=utf8", force: :cascade do |t|
t.integer "homework_common_id"
t.integer "user_id"
t.float "code_rate"
t.datetime "created_at", null: false
t.datetime "updated_at", null: false
t.index ["homework_common_id"], name: "index_homework_review_results_on_homework_common_id"
t.index ["user_id"], name: "index_homework_review_results_on_user_id"
end
create_table "homework_samples", id: :integer, options: "ENGINE=InnoDB DEFAULT CHARSET=utf8", force: :cascade do |t|
t.text "input"
t.text "output"
t.integer "homework_common_id"
t.datetime "created_at", null: false
t.datetime "updated_at", null: false
t.index ["homework_common_id"], name: "index_homework_samples_on_homework_common_id"
end
create_table "homework_seconds", id: :integer, options: "ENGINE=InnoDB DEFAULT CHARSET=utf8", force: :cascade do |t|
t.string "name"
t.integer "user_id"
t.text "description"
t.datetime "publish_time"
t.datetime "end_time"
t.integer "homework_type", default: 1
t.string "late_penalty"
t.integer "course_id"
t.datetime "created_at", null: false
t.datetime "updated_at", null: false
t.integer "teacher_priority", default: 1
t.integer "anonymous_comment", default: 0
t.integer "quotes", default: 0
t.integer "is_open", default: 0
t.datetime "simi_time"
t.integer "score_open", default: 1
t.integer "anonymous_appeal", default: 0
t.integer "homework_bank_id"
t.boolean "is_update", default: false
t.boolean "is_public", default: false
t.text "reference_answer"
t.boolean "answer_public", default: true
t.datetime "archive_time"
t.boolean "allow_late", default: true
t.datetime "late_time"
t.boolean "work_public", default: true
t.text "explanation"
t.boolean "unified_setting", default: true
t.boolean "comment_public", default: true
t.integer "course_homework_category_id"
t.boolean "work_efficiency", default: true
t.integer "eff_score", default: 20
t.float "max_efficiency", default: 0.0
t.index ["course_homework_category_id"], name: "index_homework_seconds_on_course_homework_category_id"
t.index ["course_id", "id"], name: "index_homework_seconds_on_course_id_and_id"
end
create_table "homework_tests", id: :integer, options: "ENGINE=InnoDB DEFAULT CHARSET=utf8", force: :cascade do |t|
t.text "input"
t.text "output"
t.integer "homework_common_id"
t.datetime "created_at", null: false
t.datetime "updated_at", null: false
t.integer "result"
t.text "error_msg"
end
create_table "homework_users", id: :integer, options: "ENGINE=InnoDB DEFAULT CHARSET=utf8", force: :cascade do |t|
t.string "homework_attach_id"
t.string "user_id"
t.datetime "created_at", null: false
t.datetime "updated_at", null: false
end
create_table "import_course_users", id: :integer, options: "ENGINE=InnoDB DEFAULT CHARSET=utf8", force: :cascade do |t|
t.string "user_student_id"
t.string "user_name"
t.string "user_group_name"
t.integer "course_id"
t.integer "school_id"
t.boolean "status", default: false
t.datetime "created_at", null: false
t.datetime "updated_at", null: false
t.index ["course_id"], name: "index_import_course_users_on_course_id"
t.index ["school_id"], name: "index_import_course_users_on_school_id"
end
create_table "import_students", id: :integer, options: "ENGINE=InnoDB DEFAULT CHARSET=utf8", force: :cascade do |t|
t.string "name"
t.string "student_number"
t.integer "course_id"
t.integer "school_id"
t.integer "status", default: 0
t.datetime "created_at", null: false
t.datetime "updated_at", null: false
end
create_table "informs", id: :integer, options: "ENGINE=InnoDB DEFAULT CHARSET=utf8", force: :cascade do |t|
t.string "name"
t.text "description"
t.datetime "created_at", null: false
t.datetime "updated_at", null: false
t.string "container_type"
t.integer "container_id"
t.integer "status", limit: 1, default: 1
t.integer "position", default: 1
t.bigint "user_id", comment: "公告发布者"
t.index ["user_id"], name: "index_informs_on_user_id"
end
create_table "innodb_monitor", id: false, options: "ENGINE=InnoDB DEFAULT CHARSET=utf8", force: :cascade do |t|
t.integer "a"
end
create_table "invite_lists", id: :integer, options: "ENGINE=InnoDB DEFAULT CHARSET=utf8", force: :cascade do |t|
t.integer "project_id"
t.integer "user_id"
t.datetime "created_at", null: false
t.datetime "updated_at", null: false
t.string "mail"
end
create_table "issue_categories", id: :integer, options: "ENGINE=InnoDB DEFAULT CHARSET=utf8", force: :cascade do |t|
t.integer "project_id", default: 0, null: false
t.string "name", limit: 30, default: "", null: false
t.integer "assigned_to_id"
t.index ["assigned_to_id"], name: "index_issue_categories_on_assigned_to_id"
t.index ["project_id"], name: "issue_categories_project_id"
end
create_table "issue_relations", id: :integer, options: "ENGINE=InnoDB DEFAULT CHARSET=utf8", force: :cascade do |t|
t.integer "issue_from_id", null: false
t.integer "issue_to_id", null: false
t.string "relation_type", default: "", null: false
t.integer "delay"
t.index ["issue_from_id", "issue_to_id"], name: "index_issue_relations_on_issue_from_id_and_issue_to_id", unique: true
t.index ["issue_from_id"], name: "index_issue_relations_on_issue_from_id"
t.index ["issue_to_id"], name: "index_issue_relations_on_issue_to_id"
end
create_table "issue_statuses", id: :integer, options: "ENGINE=InnoDB DEFAULT CHARSET=utf8", force: :cascade do |t|
t.string "name", limit: 30, default: "", null: false
t.boolean "is_closed", default: false, null: false
t.boolean "is_default", default: false, null: false
t.integer "position", default: 1
t.integer "default_done_ratio"
t.index ["is_closed"], name: "index_issue_statuses_on_is_closed"
t.index ["is_default"], name: "index_issue_statuses_on_is_default"
t.index ["position"], name: "index_issue_statuses_on_position"
end
create_table "issues", id: :integer, options: "ENGINE=InnoDB DEFAULT CHARSET=utf8", force: :cascade do |t|
t.integer "tracker_id", null: false
t.integer "project_id", null: false
t.string "subject", default: "", null: false
t.text "description"
t.date "due_date"
t.integer "category_id"
t.integer "status_id", null: false
t.integer "assigned_to_id"
t.integer "priority_id", null: false
t.integer "fixed_version_id"
t.integer "author_id", null: false
t.integer "lock_version", default: 0, null: false
t.datetime "created_on"
t.datetime "updated_on"
t.date "start_date"
t.integer "done_ratio", default: 0, null: false
t.float "estimated_hours"
t.integer "parent_id"
t.integer "root_id"
t.integer "lft"
t.integer "rgt"
t.boolean "is_private", default: false, null: false
t.datetime "closed_on"
t.integer "project_issues_index"
t.index ["assigned_to_id"], name: "index_issues_on_assigned_to_id"
t.index ["author_id"], name: "index_issues_on_author_id"
t.index ["category_id"], name: "index_issues_on_category_id"
t.index ["created_on"], name: "index_issues_on_created_on"
t.index ["fixed_version_id"], name: "index_issues_on_fixed_version_id"
t.index ["priority_id"], name: "index_issues_on_priority_id"
t.index ["project_id"], name: "issues_project_id"
t.index ["root_id", "lft", "rgt"], name: "index_issues_on_root_id_and_lft_and_rgt"
t.index ["status_id"], name: "index_issues_on_status_id"
t.index ["tracker_id"], name: "index_issues_on_tracker_id"
end
create_table "item_analyses", options: "ENGINE=InnoDB DEFAULT CHARSET=utf8", force: :cascade do |t|
t.bigint "item_bank_id"
t.text "analysis"
t.datetime "created_at", null: false
t.datetime "updated_at", null: false
t.index ["item_bank_id"], name: "index_item_analyses_on_item_bank_id"
end
create_table "item_bank_standard_answers", options: "ENGINE=InnoDB DEFAULT CHARSET=utf8", force: :cascade do |t|
t.integer "position", comment: "表示选项的序号,并非外键,相同的position_id表示,同一个空的答案"
t.integer "item_bank_id", comment: "外键,关联ItemBank"
t.text "answer_text"
t.datetime "created_at", null: false
t.datetime "updated_at", null: false
t.index ["item_bank_id"], name: "index_item_bank_standard_answers_on_item_bank_id"
end
create_table "item_bank_tag_repertoires", options: "ENGINE=InnoDB DEFAULT CHARSET=utf8", force: :cascade do |t|
t.bigint "item_bank_id"
t.bigint "tag_repertoire_id"
t.datetime "created_at", null: false
t.datetime "updated_at", null: false
t.index ["item_bank_id"], name: "index_item_bank_tag_repertoires_on_item_bank_id"
t.index ["tag_repertoire_id"], name: "index_item_bank_tag_repertoires_on_tag_repertoire_id"
end
create_table "item_banks", options: "ENGINE=InnoDB DEFAULT CHARSET=utf8", force: :cascade do |t|
t.text "name"
t.integer "item_type"
t.integer "difficulty", default: 1
t.bigint "user_id"
t.boolean "public", default: false
t.integer "quotes", default: 0
t.datetime "created_at", null: false
t.datetime "updated_at", null: false
t.integer "sub_discipline_id"
t.integer "container_id"
t.string "container_type"
t.boolean "is_ordered", default: true
t.integer "old_id"
t.integer "copy_id"
t.index ["user_id"], name: "index_item_banks_on_user_id"
end
create_table "item_baskets", options: "ENGINE=InnoDB DEFAULT CHARSET=utf8", force: :cascade do |t|
t.bigint "item_bank_id"
t.bigint "user_id"
t.datetime "created_at", null: false
t.datetime "updated_at", null: false
t.integer "position", default: 0
t.float "score", default: 0.0
t.integer "item_type", default: 0
t.integer "examination_intelligent_setting_id"
t.index ["item_bank_id"], name: "index_item_baskets_on_item_bank_id"
t.index ["user_id"], name: "index_item_baskets_on_user_id"
end
create_table "item_choices", options: "ENGINE=InnoDB DEFAULT CHARSET=utf8", force: :cascade do |t|
t.bigint "item_bank_id"
t.text "choice_text"
t.boolean "is_answer"
t.datetime "created_at", null: false
t.datetime "updated_at", null: false
t.index ["item_bank_id"], name: "index_item_choices_on_item_bank_id"
end
create_table "job_classifies", options: "ENGINE=InnoDB DEFAULT CHARSET=utf8", force: :cascade do |t|
t.string "name"
t.integer "parent_id", default: 0
t.integer "position", default: 0
t.datetime "created_at", null: false
t.datetime "updated_at", null: false
end
create_table "jobs", options: "ENGINE=InnoDB DEFAULT CHARSET=utf8", force: :cascade do |t|
t.string "name"
t.bigint "job_classify_id"
t.integer "num"
t.integer "job_category"
t.string "city"
t.string "address"
t.integer "min_salary"
t.integer "max_salary"
t.integer "education"
t.integer "work_year"
t.text "description"
t.text "introduce"
t.bigint "user_id"
t.string "state"
t.string "company"
t.datetime "created_at", null: false
t.datetime "updated_at", null: false
t.integer "apply_jobs_count", default: 0
t.index ["job_classify_id"], name: "index_jobs_on_job_classify_id"
t.index ["user_id"], name: "index_jobs_on_user_id"
end
create_table "join_in_competitions", id: :integer, options: "ENGINE=InnoDB DEFAULT CHARSET=utf8", force: :cascade do |t|
t.integer "user_id"
t.integer "competition_id"
t.datetime "created_at", null: false
t.datetime "updated_at", null: false
end
create_table "join_in_contests", id: :integer, options: "ENGINE=InnoDB DEFAULT CHARSET=utf8", force: :cascade do |t|
t.integer "user_id"
t.integer "bid_id"
t.datetime "created_at", null: false
t.datetime "updated_at", null: false
end
create_table "journal_details", id: :integer, options: "ENGINE=InnoDB DEFAULT CHARSET=utf8", force: :cascade do |t|
t.integer "journal_id", default: 0, null: false
t.string "property", limit: 30, default: "", null: false
t.string "prop_key", limit: 30, default: "", null: false
t.text "old_value"
t.text "value"
t.index ["journal_id"], name: "journal_details_journal_id"
end
create_table "journal_replies", id: false, options: "ENGINE=InnoDB DEFAULT CHARSET=utf8", force: :cascade do |t|
t.integer "journal_id"
t.integer "user_id"
t.integer "reply_id"
t.index ["journal_id"], name: "index_journal_replies_on_journal_id"
t.index ["reply_id"], name: "index_journal_replies_on_reply_id"
t.index ["user_id"], name: "index_journal_replies_on_user_id"
end
create_table "journals", id: :integer, options: "ENGINE=InnoDB DEFAULT CHARSET=utf8", force: :cascade do |t|
t.integer "journalized_id", default: 0, null: false
t.string "journalized_type", limit: 30, default: "", null: false
t.integer "user_id", default: 0, null: false
t.text "notes"
t.datetime "created_on", null: false
t.boolean "private_notes", default: false, null: false
t.integer "parent_id"
t.integer "comments_count", default: 0
t.integer "reply_id"
t.index ["created_on"], name: "index_journals_on_created_on"
t.index ["journalized_id", "journalized_type"], name: "journals_journalized_id"
t.index ["journalized_id"], name: "index_journals_on_journalized_id"
t.index ["user_id"], name: "index_journals_on_user_id"
end
create_table "journals_for_messages", id: :integer, options: "ENGINE=InnoDB DEFAULT CHARSET=utf8", force: :cascade do |t|
t.integer "jour_id"
t.string "jour_type"
t.integer "user_id"
t.text "notes"
t.integer "status"
t.integer "reply_id"
t.datetime "created_on", null: false
t.datetime "updated_on", null: false
t.string "m_parent_id"
t.boolean "is_readed"
t.integer "m_reply_count"
t.integer "m_reply_id"
t.integer "is_comprehensive_evaluation"
t.integer "private", default: 0
t.integer "root_id"
t.boolean "hidden", default: false
t.integer "praises_count", default: 0
t.index ["jour_id"], name: "index_journals_for_messages_on_jour_id"
t.index ["root_id"], name: "index_journals_for_messages_on_root_id"
end
create_table "kindeditor_assets", id: :integer, options: "ENGINE=InnoDB DEFAULT CHARSET=utf8", force: :cascade do |t|
t.string "asset"
t.integer "file_size"
t.string "file_type"
t.integer "owner_id"
t.string "asset_type"
t.datetime "created_at", null: false
t.datetime "updated_at", null: false
t.integer "owner_type", default: 0
end
create_table "knowledge_point_containers", options: "ENGINE=InnoDB DEFAULT CHARSET=utf8", force: :cascade do |t|
t.integer "container_id"
t.string "container_type"
t.bigint "knowledge_point_id"
t.datetime "created_at", null: false
t.datetime "updated_at", null: false
t.index ["knowledge_point_id"], name: "index_knowledge_point_containers_on_knowledge_point_id"
end
create_table "knowledge_points", options: "ENGINE=InnoDB DEFAULT CHARSET=utf8", force: :cascade do |t|
t.bigint "curriculum_id"
t.string "name"
t.datetime "created_at", null: false
t.datetime "updated_at", null: false
t.index ["curriculum_id"], name: "index_knowledge_points_on_curriculum_id"
end
create_table "laboratories", options: "ENGINE=InnoDB DEFAULT CHARSET=utf8", force: :cascade do |t|
t.bigint "school_id"
t.string "identifier"
t.datetime "created_at", null: false
t.datetime "updated_at", null: false
t.boolean "sync_course", default: false
t.boolean "sync_subject", default: false
t.boolean "sync_shixun", default: false
t.index ["identifier"], name: "index_laboratories_on_identifier", unique: true
t.index ["school_id"], name: "index_laboratories_on_school_id"
end
create_table "laboratory_settings", options: "ENGINE=InnoDB DEFAULT CHARSET=utf8", force: :cascade do |t|
t.bigint "laboratory_id"
t.text "config"
t.index ["laboratory_id"], name: "index_laboratory_settings_on_laboratory_id"
end
create_table "laboratory_shixuns", options: "ENGINE=InnoDB DEFAULT CHARSET=utf8", force: :cascade do |t|
t.bigint "laboratory_id"
t.bigint "shixun_id"
t.boolean "ownership", default: false
t.boolean "homepage", default: false
t.datetime "created_at", null: false
t.datetime "updated_at", null: false
t.index ["laboratory_id"], name: "index_laboratory_shixuns_on_laboratory_id"
t.index ["shixun_id"], name: "index_laboratory_shixuns_on_shixun_id"
end
create_table "laboratory_subjects", options: "ENGINE=InnoDB DEFAULT CHARSET=utf8", force: :cascade do |t|
t.bigint "laboratory_id"
t.bigint "subject_id"
t.boolean "ownership", default: false
t.boolean "homepage", default: false
t.datetime "created_at", null: false
t.datetime "updated_at", null: false
t.index ["laboratory_id"], name: "index_laboratory_subjects_on_laboratory_id"
t.index ["subject_id"], name: "index_laboratory_subjects_on_subject_id"
end
create_table "laboratory_users", options: "ENGINE=InnoDB DEFAULT CHARSET=utf8", force: :cascade do |t|
t.bigint "laboratory_id"
t.bigint "user_id"
t.index ["laboratory_id"], name: "index_laboratory_users_on_laboratory_id"
t.index ["user_id"], name: "index_laboratory_users_on_user_id"
end
create_table "libraries", id: :integer, options: "ENGINE=InnoDB DEFAULT CHARSET=utf8", force: :cascade do |t|
t.integer "user_id"
t.string "title"
t.text "content"
t.string "uuid"
t.string "status"
t.integer "visited_count", default: 0
t.datetime "published_at"
t.datetime "created_at", null: false
t.datetime "updated_at", null: false
t.string "author_name"
t.string "author_school_name"
t.integer "cover_id"
t.integer "praises_count", default: 0
t.bigint "laboratory_id"
t.index ["laboratory_id"], name: "index_libraries_on_laboratory_id"
t.index ["published_at"], name: "index_libraries_on_published_at"
end
create_table "library_applies", id: :integer, options: "ENGINE=InnoDB DEFAULT CHARSET=utf8", force: :cascade do |t|
t.integer "library_id"
t.string "status"
t.string "reason"
t.datetime "refused_at"
t.datetime "created_at", null: false
t.datetime "updated_at", null: false
t.index ["refused_at"], name: "index_library_applies_on_refused_at"
end
create_table "library_library_tags", id: :integer, options: "ENGINE=InnoDB DEFAULT CHARSET=utf8", force: :cascade do |t|
t.integer "library_id"
t.integer "library_tag_id"
end
create_table "library_tags", id: :integer, options: "ENGINE=InnoDB DEFAULT CHARSET=utf8", force: :cascade do |t|
t.string "name"
end
create_table "live_links", options: "ENGINE=InnoDB DEFAULT CHARSET=utf8", force: :cascade do |t|
t.bigint "course_id"
t.bigint "user_id"
t.string "url"
t.text "description"
t.boolean "on_status", default: false
t.datetime "created_at", null: false
t.datetime "updated_at", null: false
t.string "course_name"
t.string "platform"
t.datetime "live_time"
t.integer "duration"
t.index ["course_id"], name: "index_live_links_on_course_id"
t.index ["user_id"], name: "index_live_links_on_user_id"
end
create_table "local_challenge_tags", id: :integer, options: "ENGINE=InnoDB DEFAULT CHARSET=utf8", force: :cascade do |t|
t.string "name"
t.integer "local_challenge_id"
t.datetime "created_at", null: false
t.datetime "updated_at", null: false
end
create_table "local_challenges", id: :integer, options: "ENGINE=InnoDB DEFAULT CHARSET=utf8", force: :cascade do |t|
t.integer "local_shixun_id"
t.string "subject"
t.integer "status"
t.integer "position"
t.text "task_pass"
t.text "answer"
t.integer "score"
t.integer "visits"
t.string "path"
t.integer "evaluation_way"
t.integer "difficulty"
t.string "exec_path"
t.integer "code_line"
t.integer "st"
t.text "web_route"
t.text "picture_path"
t.text "expect_picture_path"
t.integer "challenge_tags_count"
t.datetime "modify_time"
t.string "original_picture_path"
t.integer "show_type"
t.datetime "created_at", null: false
t.datetime "updated_at", null: false
t.integer "test_set_score"
end
create_table "local_mirror_repositories", id: :integer, options: "ENGINE=InnoDB DEFAULT CHARSET=utf8", force: :cascade do |t|
t.integer "local_shixun_id"
t.integer "mirror_repository_id"
t.datetime "created_at", null: false
t.datetime "updated_at", null: false
t.string "type_name"
end
create_table "local_shixun_tag_repertoires", id: :integer, options: "ENGINE=InnoDB DEFAULT CHARSET=utf8", force: :cascade do |t|
t.integer "tag_repertoire_id"
t.integer "local_shixun_id"
t.datetime "created_at", null: false
t.datetime "updated_at", null: false
end
create_table "local_shixuns", id: :integer, options: "ENGINE=InnoDB DEFAULT CHARSET=utf8", force: :cascade do |t|
t.string "name"
t.text "description"
t.integer "user_id"
t.integer "gpid"
t.integer "visits"
t.integer "status"
t.string "language"
t.text "authentication"
t.string "identifier"
t.text "propaedeutics"
t.integer "trainee"
t.integer "major_id"
t.integer "webssh"
t.boolean "homepage_show"
t.boolean "hidden"
t.integer "fork_from"
t.boolean "can_copy"
t.datetime "modifiy_tim"
t.datetime "reset_time"
t.integer "closer_id"
t.datetime "end_time"
t.string "git_url"
t.boolean "vnc"
t.integer "myshixuns_count"
t.integer "challenges_count"
t.integer "use_scope"
t.text "evaluate_script"
t.integer "mirror_script_id"
t.string "image_text"
t.boolean "code_hidden"
t.boolean "task_pass"
t.integer "exec_time"
t.string "test_set_permission"
t.boolean "sigle_training"
t.boolean "hide_code"
t.boolean "multi_webssh"
t.integer "excute_time"
t.integer "averge_star"
t.integer "forbid_copy"
t.datetime "created_at", null: false
t.datetime "updated_at", null: false
t.integer "shixun_id"
t.string "local_giturl"
end
create_table "local_stage_shixuns", id: :integer, options: "ENGINE=InnoDB DEFAULT CHARSET=utf8", force: :cascade do |t|
t.integer "subject_id"
t.integer "local_subject_id"
t.integer "stage_id"
t.integer "local_stage_id"
t.integer "shixun_id"
t.integer "local_shixun_id"
t.integer "position"
t.datetime "created_at", null: false
t.datetime "updated_at", null: false
end
create_table "local_stages", id: :integer, options: "ENGINE=InnoDB DEFAULT CHARSET=utf8", force: :cascade do |t|
t.integer "subject_id"
t.string "name"
t.text "description"
t.integer "position"
t.integer "shixuns_count"
t.integer "local_subject_id"
t.datetime "created_at", null: false
t.datetime "updated_at", null: false
end
create_table "local_subjects", id: :integer, options: "ENGINE=InnoDB DEFAULT CHARSET=utf8", force: :cascade do |t|
t.string "name"
t.text "description"
t.integer "status"
t.text "learning_notes"
t.string "introduction"
t.integer "stages_count"
t.integer "stage_shixuns_count"
t.integer "shixuns_count"
t.integer "subject_id"
t.datetime "created_at", null: false
t.datetime "updated_at", null: false
end
create_table "local_test_sets", id: :integer, options: "ENGINE=InnoDB DEFAULT CHARSET=utf8", force: :cascade do |t|
t.text "input"
t.text "output"
t.integer "local_challenge_id"
t.integer "is_public"
t.integer "result"
t.integer "position"
t.datetime "created_at", null: false
t.datetime "updated_at", null: false
t.integer "score"
end
create_table "major_courses", id: :integer, options: "ENGINE=InnoDB DEFAULT CHARSET=utf8", force: :cascade do |t|
t.integer "course_list_id"
t.integer "major_id"
t.index ["course_list_id"], name: "index_major_courses_on_course_list_id"
t.index ["major_id"], name: "index_major_courses_on_major_id"
end
create_table "majors", id: :integer, options: "ENGINE=InnoDB DEFAULT CHARSET=utf8", force: :cascade do |t|
t.string "major_code"
t.string "name"
t.integer "first_level_discipline_id"
t.integer "discipline_category_id"
t.integer "major_level"
t.datetime "created_at"
t.datetime "updated_at"
t.boolean "support_shixuns", default: false
t.index ["discipline_category_id"], name: "index_majors_on_discipline_category_id"
t.index ["first_level_discipline_id"], name: "index_majors_on_first_level_discipline_id"
end
create_table "mark_downs", id: :integer, options: "ENGINE=InnoDB DEFAULT CHARSET=utf8", force: :cascade do |t|
t.text "description"
t.datetime "created_at", null: false
t.datetime "updated_at", null: false
end
create_table "member_roles", id: :integer, options: "ENGINE=InnoDB DEFAULT CHARSET=utf8", force: :cascade do |t|
t.integer "member_id", null: false
t.integer "role_id", null: false
t.integer "inherited_from"
t.integer "is_current", default: 1
t.index ["member_id"], name: "index_member_roles_on_member_id"
t.index ["role_id"], name: "index_member_roles_on_role_id"
end
create_table "members", id: :integer, options: "ENGINE=InnoDB DEFAULT CHARSET=utf8", force: :cascade do |t|
t.integer "user_id", default: 0, null: false
t.integer "project_id", default: 0
t.datetime "created_on"
t.boolean "mail_notification", default: false, null: false
t.integer "course_id", default: -1
t.integer "course_group_id", default: 0
t.integer "is_collect", default: 1
t.integer "graduation_group_id", default: 0
t.index ["course_id"], name: "index_members_on_course_id"
t.index ["project_id"], name: "index_members_on_project_id"
t.index ["user_id", "project_id", "course_id"], name: "index_members_on_user_id_and_project_id", unique: true
t.index ["user_id"], name: "index_members_on_user_id"
end
create_table "memo_messages", id: :integer, options: "ENGINE=InnoDB DEFAULT CHARSET=utf8", force: :cascade do |t|
t.integer "user_id"
t.integer "forum_id"
t.integer "memo_id"
t.string "memo_type"
t.integer "viewed"
t.datetime "created_at", null: false
t.datetime "updated_at", null: false
t.index ["memo_id", "memo_type"], name: "index_memo_messages_on_memo_id_and_memo_type"
t.index ["user_id", "forum_id", "created_at"], name: "index_memo_messages_on_user_id_and_forum_id_and_created_at"
end
create_table "memo_tag_repertoires", id: :integer, options: "ENGINE=InnoDB DEFAULT CHARSET=utf8", force: :cascade do |t|
t.integer "memo_id"
t.integer "tag_repertoire_id"
t.datetime "created_at", null: false
t.datetime "updated_at", null: false
t.index ["memo_id"], name: "index_memo_tag_repertoires_on_memo_id"
t.index ["tag_repertoire_id"], name: "index_memo_tag_repertoires_on_tag_repertoire_id"
end
create_table "memos", id: :integer, options: "ENGINE=InnoDB DEFAULT CHARSET=utf8", force: :cascade do |t|
t.integer "forum_id", null: false
t.integer "parent_id"
t.string "subject", null: false
t.text "content", limit: 4294967295, null: false
t.integer "author_id", null: false
t.integer "replies_count", default: 0
t.integer "last_reply_id"
t.boolean "lock", default: false
t.boolean "sticky", default: false
t.datetime "created_at", null: false
t.datetime "updated_at", null: false
t.integer "viewed_count", default: 0
t.integer "root_id"
t.integer "reward"
t.string "language"
t.integer "hidden", limit: 1, default: 0
t.string "repertoire_name"
t.boolean "is_md", default: true
t.integer "all_replies_count", default: 0
t.integer "praises_count", default: 0
t.index ["root_id"], name: "index_memos_on_root_id"
end
create_table "message_alls", id: :integer, options: "ENGINE=InnoDB DEFAULT CHARSET=utf8", force: :cascade do |t|
t.integer "user_id"
t.integer "message_id"
t.string "message_type"
t.datetime "created_at", null: false
t.datetime "updated_at", null: false
t.index ["message_type"], name: "index_message_alls_on_message_type"
t.index ["user_id", "message_id", "created_at"], name: "index_message_alls_on_user_id_and_message_id_and_created_at"
end
create_table "message_details", options: "ENGINE=InnoDB DEFAULT CHARSET=utf8", force: :cascade do |t|
t.text "content", limit: 4294967295
t.integer "message_id"
t.datetime "created_at", null: false
t.datetime "updated_at", null: false
t.index ["message_id"], name: "index_message_details_on_message_id"
end
create_table "messages", id: :integer, options: "ENGINE=InnoDB DEFAULT CHARSET=utf8", force: :cascade do |t|
t.integer "board_id", null: false
t.integer "parent_id"
t.string "subject", default: "", null: false
t.integer "author_id"
t.integer "replies_count", default: 0, null: false
t.integer "last_reply_id"
t.datetime "created_on", null: false
t.datetime "updated_on", null: false
t.boolean "locked", default: false
t.integer "sticky", default: 0
t.integer "reply_id"
t.integer "quotes"
t.integer "status", default: 0
t.integer "root_id"
t.integer "visits", default: 0
t.integer "praises_count", default: 0
t.boolean "is_hidden", default: false
t.boolean "is_public", default: false
t.integer "descendants_count", default: 0
t.boolean "is_md", default: true
t.boolean "email_notify", default: false
t.index ["board_id"], name: "messages_board_id"
t.index ["last_reply_id"], name: "index_messages_on_last_reply_id"
t.index ["parent_id"], name: "messages_parent_id"
end
create_table "mirror_migrate_errors", id: :integer, options: "ENGINE=InnoDB DEFAULT CHARSET=utf8", force: :cascade do |t|
t.integer "shixun_id"
t.text "game_info"
t.datetime "created_at", null: false
t.datetime "updated_at", null: false
end
create_table "mirror_operation_records", id: :integer, options: "ENGINE=InnoDB DEFAULT CHARSET=utf8", force: :cascade do |t|
t.integer "mirror_repository_id"
t.text "mirror_id"
t.text "mirror_name"
t.integer "status"
t.datetime "created_at", null: false
t.datetime "updated_at", null: false
t.integer "user_id"
t.string "old_tag"
t.string "new_tag"
end
create_table "mirror_repositories", id: :integer, options: "ENGINE=InnoDB DEFAULT CHARSET=utf8", force: :cascade do |t|
t.string "mirrorID"
t.string "name"
t.string "main_type"
t.text "description"
t.integer "status", default: 0
t.datetime "created_at", null: false
t.datetime "updated_at", null: false
t.text "type_name"
t.text "script_template", limit: 4294967295
t.integer "resource_limit", default: 10000
t.integer "memory_limit", default: 1024
t.integer "cpu_limit", limit: 1, default: 1
t.integer "time_limit", default: 120
t.boolean "should_compile"
t.integer "repertoire_id"
t.integer "sub_repertoire_id"
end
create_table "mirror_repository_types", id: :integer, options: "ENGINE=InnoDB DEFAULT CHARSET=utf8", force: :cascade do |t|
t.integer "mirror_type_id"
t.integer "mirror_repository_id"
t.datetime "created_at", null: false
t.datetime "updated_at", null: false
t.index ["mirror_repository_id"], name: "index_mirror_repository_types_on_mirror_repository_id"
t.index ["mirror_type_id"], name: "index_mirror_repository_types_on_mirror_type_id"
end
create_table "mirror_scripts", id: :integer, options: "ENGINE=InnoDB DEFAULT CHARSET=utf8", force: :cascade do |t|
t.integer "mirror_repository_id"
t.text "script", limit: 4294967295
t.string "script_type"
t.text "description"
t.datetime "created_at", null: false
t.datetime "updated_at", null: false
end
create_table "mirror_types", id: :integer, options: "ENGINE=InnoDB DEFAULT CHARSET=utf8", force: :cascade do |t|
t.string "name"
t.integer "user_id"
t.datetime "created_at", null: false
t.datetime "updated_at", null: false
end
create_table "mirror_update_records", id: :integer, options: "ENGINE=InnoDB DEFAULT CHARSET=utf8", force: :cascade do |t|
t.integer "user_id"
t.integer "mirror_repository_id"
t.string "oldName"
t.string "newName"
t.string "oldType"
t.string "newType"
t.text "oldTag"
t.text "newTag"
t.text "oldDescription"
t.text "newDescription"
t.integer "oldStatus"
t.integer "newStatus"
t.datetime "created_at", null: false
t.datetime "updated_at", null: false
t.index ["mirror_repository_id"], name: "index_mirror_update_records_on_mirror_repository_id"
t.index ["user_id"], name: "index_mirror_update_records_on_user_id"
end
create_table "module_settings", options: "ENGINE=InnoDB DEFAULT CHARSET=utf8", force: :cascade do |t|
t.string "module_type"
t.string "property"
t.datetime "created_at", null: false
t.datetime "updated_at", null: false
t.index ["module_type"], name: "index_module_settings_on_module_type"
end
create_table "mul_tests", id: :integer, options: "ENGINE=InnoDB DEFAULT CHARSET=utf8", force: :cascade do |t|
t.integer "container_id"
t.string "container_type"
t.string "action"
t.integer "time"
t.integer "status", default: 0
t.datetime "created_at", null: false
t.datetime "updated_at", null: false
t.string "language"
t.integer "num"
t.string "indentifier"
t.string "name"
t.integer "shixun_id"
end
create_table "myshixun_members", id: :integer, options: "ENGINE=InnoDB DEFAULT CHARSET=utf8", force: :cascade do |t|
t.integer "myshixun_id"
t.integer "user_id"
t.integer "role"
t.datetime "created_at", null: false
t.datetime "updated_at", null: false
end
create_table "myshixuns", id: :integer, options: "ENGINE=InnoDB DEFAULT CHARSET=utf8", force: :cascade do |t|
t.integer "shixun_id"
t.boolean "is_public", default: true
t.integer "user_id"
t.integer "gpid"
t.datetime "created_at", null: false
t.datetime "updated_at", null: false
t.integer "status", default: 0
t.string "identifier"
t.string "commit_id"
t.datetime "modify_time"
t.datetime "reset_time"
t.boolean "system_tip", default: false
t.string "git_url"
t.datetime "onclick_time"
t.string "repo_name"
t.index ["identifier"], name: "index_myshixuns_on_identifier"
t.index ["user_id", "shixun_id"], name: "index_myshixuns_on_user_id_and_shixun_id", unique: true
end
create_table "news", id: :integer, options: "ENGINE=InnoDB DEFAULT CHARSET=utf8", force: :cascade do |t|
t.integer "project_id"
t.string "title", limit: 60, default: "", null: false
t.string "summary", default: ""
t.text "description"
t.integer "author_id", default: 0, null: false
t.datetime "created_on"
t.integer "comments_count", default: 0, null: false
t.integer "course_id"
t.integer "sticky", default: 0
t.integer "org_subfield_id"
t.integer "contest_id"
t.index ["author_id"], name: "index_news_on_author_id"
t.index ["created_on"], name: "index_news_on_created_on"
t.index ["project_id"], name: "news_project_id"
end
create_table "no_uses", id: :integer, options: "ENGINE=InnoDB DEFAULT CHARSET=utf8", force: :cascade do |t|
t.integer "user_id", null: false
t.string "no_use_type"
t.integer "no_use_id"
t.datetime "created_at", null: false
t.datetime "updated_at", null: false
end
create_table "notificationcomments", id: :integer, options: "ENGINE=InnoDB DEFAULT CHARSET=utf8", force: :cascade do |t|
t.string "notificationcommented_type"
t.integer "notificationcommented_id"
t.integer "author_id"
t.text "notificationcomments"
t.datetime "created_at", null: false
t.datetime "updated_at", null: false
end
create_table "oauth_configs", id: :integer, options: "ENGINE=InnoDB DEFAULT CHARSET=utf8", force: :cascade do |t|
t.string "client_id"
t.string "client_secret"
t.string "redirect_uri"
t.string "scope"
t.datetime "created_at", null: false
t.datetime "updated_at", null: false
end
create_table "oauths", id: :integer, options: "ENGINE=InnoDB DEFAULT CHARSET=utf8", force: :cascade do |t|
t.string "client_id"
t.string "client_secret"
t.string "code"
t.string "redirect_uri"
t.string "scope"
t.string "access_token"
t.string "refresh_token"
t.integer "token_created_at"
t.integer "token_expires_in"
t.datetime "created_at", null: false
t.datetime "updated_at", null: false
t.integer "user_id", default: 0
t.index ["user_id"], name: "index_oauths_on_user_id"
end
create_table "old_message_details", options: "ENGINE=InnoDB DEFAULT CHARSET=utf8", force: :cascade do |t|
t.text "content", limit: 4294967295
t.integer "message_id"
t.datetime "created_at", null: false
t.datetime "updated_at", null: false
t.index ["message_id"], name: "index_message_details_on_message_id"
end
create_table "onclick_times", id: :integer, options: "ENGINE=InnoDB DEFAULT CHARSET=utf8", force: :cascade do |t|
t.integer "user_id"
t.datetime "onclick_time"
t.datetime "created_at", null: false
t.datetime "updated_at", null: false
t.index ["user_id"], name: "index_onclick_times_on_user_id"
end
create_table "open_id_authentication_associations", id: :integer, options: "ENGINE=InnoDB DEFAULT CHARSET=utf8", force: :cascade do |t|
t.integer "issued"
t.integer "lifetime"
t.string "handle"
t.string "assoc_type"
t.binary "server_url"
t.binary "secret"
end
create_table "open_id_authentication_nonces", id: :integer, options: "ENGINE=InnoDB DEFAULT CHARSET=utf8", force: :cascade do |t|
t.integer "timestamp", null: false
t.string "server_url"
t.string "salt", null: false
end
create_table "open_source_projects", id: :integer, options: "ENGINE=InnoDB DEFAULT CHARSET=utf8", force: :cascade do |t|
t.string "name"
t.text "description"
t.integer "commit_count", default: 0
t.integer "code_line", default: 0
t.integer "users_count", default: 0
t.date "last_commit_time"
t.string "url"
t.date "date_collected"
t.datetime "created_at", null: false
t.datetime "updated_at", null: false
end
create_table "open_users", options: "ENGINE=InnoDB DEFAULT CHARSET=utf8", force: :cascade do |t|
t.bigint "user_id"
t.string "type"
t.string "uid"
t.datetime "created_at", null: false
t.datetime "updated_at", null: false
t.text "extra"
t.index ["type", "uid"], name: "index_open_users_on_type_and_uid", unique: true
t.index ["user_id"], name: "index_open_users_on_user_id"
end
create_table "openis", id: :integer, options: "ENGINE=InnoDB DEFAULT CHARSET=utf8", force: :cascade do |t|
t.integer "user_id"
t.integer "openi_user_id"
t.string "login"
t.string "avatar_url"
t.string "name"
t.string "email"
t.integer "allow"
t.datetime "created_at", null: false
t.datetime "updated_at", null: false
end
create_table "option_numbers", id: :integer, options: "ENGINE=InnoDB DEFAULT CHARSET=utf8", force: :cascade do |t|
t.integer "user_id"
t.integer "memo"
t.integer "messages_for_issues"
t.integer "issues_status"
t.integer "replay_for_message"
t.integer "replay_for_memo"
t.integer "follow"
t.integer "tread"
t.integer "praise_by_one"
t.integer "praise_by_two"
t.integer "praise_by_three"
t.integer "tread_by_one"
t.integer "tread_by_two"
t.integer "tread_by_three"
t.integer "changeset"
t.integer "document"
t.integer "attachment"
t.integer "issue_done_ratio"
t.integer "post_issue"
t.integer "score_type"
t.integer "total_score"
t.datetime "created_at", null: false
t.datetime "updated_at", null: false
t.integer "project_id"
end
create_table "org_activities", id: :integer, options: "ENGINE=InnoDB DEFAULT CHARSET=utf8", force: :cascade do |t|
t.integer "user_id"
t.integer "org_act_id"
t.string "org_act_type"
t.integer "container_id"
t.string "container_type"
t.datetime "created_at", null: false
t.datetime "updated_at", null: false
end
create_table "org_courses", id: :integer, options: "ENGINE=InnoDB DEFAULT CHARSET=utf8", force: :cascade do |t|
t.integer "organization_id"
t.integer "course_id"
t.datetime "created_at"
end
create_table "org_document_comments", id: :integer, options: "ENGINE=InnoDB DEFAULT CHARSET=utf8", force: :cascade do |t|
t.text "title"
t.text "content"
t.integer "organization_id"
t.integer "creator_id"
t.integer "parent_id"
t.integer "reply_id"
t.datetime "created_at", null: false
t.datetime "updated_at", null: false
t.boolean "locked", default: false
t.integer "sticky", default: 0
t.integer "org_subfield_id"
t.integer "status", default: 0
t.integer "root_id"
t.index ["root_id"], name: "index_org_document_comments_on_root_id"
end
create_table "org_member_roles", id: :integer, options: "ENGINE=InnoDB DEFAULT CHARSET=utf8", force: :cascade do |t|
t.integer "org_member_id"
t.integer "role_id"
end
create_table "org_members", id: :integer, options: "ENGINE=InnoDB DEFAULT CHARSET=utf8", force: :cascade do |t|
t.integer "user_id"
t.integer "organization_id"
t.datetime "created_at", null: false
t.datetime "updated_at", null: false
end
create_table "org_messages", id: :integer, options: "ENGINE=InnoDB DEFAULT CHARSET=utf8", force: :cascade do |t|
t.integer "user_id"
t.integer "sender_id"
t.integer "organization_id"
t.string "message_type"
t.integer "message_id"
t.integer "viewed"
t.string "content"
t.datetime "created_at", null: false
t.datetime "updated_at", null: false
t.integer "status", default: 0
end
create_table "org_projects", id: :integer, options: "ENGINE=InnoDB DEFAULT CHARSET=utf8", force: :cascade do |t|
t.integer "organization_id"
t.integer "project_id"
t.datetime "created_at"
end
create_table "org_subfield_messages", id: :integer, options: "ENGINE=InnoDB DEFAULT CHARSET=utf8", force: :cascade do |t|
t.integer "org_subfield_id"
t.integer "message_id"
t.string "message_type"
t.datetime "created_at", null: false
t.datetime "updated_at", null: false
end
create_table "org_subfields", id: :integer, options: "ENGINE=InnoDB DEFAULT CHARSET=utf8", force: :cascade do |t|
t.integer "organization_id"
t.integer "priority"
t.string "name"
t.datetime "created_at", null: false
t.datetime "updated_at", null: false
t.string "field_type"
t.integer "hide", default: 0
t.integer "status", default: 1
end
create_table "organizations", id: :integer, options: "ENGINE=InnoDB DEFAULT CHARSET=utf8", force: :cascade do |t|
t.string "name"
t.text "description"
t.integer "creator_id"
t.integer "home_id"
t.boolean "is_public"
t.datetime "created_at", null: false
t.datetime "updated_at", null: false
t.boolean "allow_guest_download", default: true
t.integer "visits", default: 0
t.integer "show_mode", default: 0
t.integer "allow_teacher", default: 0
end
create_table "outputs", id: :integer, options: "ENGINE=InnoDB DEFAULT CHARSET=utf8", force: :cascade do |t|
t.integer "code"
t.integer "game_id"
t.text "msg"
t.text "out_put", limit: 4294967295
t.datetime "created_at", null: false
t.datetime "updated_at", null: false
t.integer "test_set_position"
t.text "actual_output", limit: 4294967295
t.boolean "result"
t.boolean "is_public"
t.integer "query_index", default: 1
t.integer "compile_success", default: 1
t.string "text_scor"
t.string "sec_key"
t.float "ts_mem"
t.float "ts_time"
t.index ["game_id", "query_index"], name: "game"
end
create_table "partner_customers", id: :integer, options: "ENGINE=InnoDB DEFAULT CHARSET=utf8", force: :cascade do |t|
t.integer "partner_id"
t.integer "customer_id"
t.datetime "created_at", null: false
t.datetime "updated_at", null: false
end
create_table "partner_manager_groups", options: "ENGINE=InnoDB DEFAULT CHARSET=utf8", force: :cascade do |t|
t.bigint "partner_id"
t.string "name"
t.boolean "admin", default: false
t.datetime "created_at", null: false
t.datetime "updated_at", null: false
t.index ["partner_id"], name: "index_partner_manager_groups_on_partner_id"
end
create_table "partner_managers", options: "ENGINE=InnoDB DEFAULT CHARSET=utf8", force: :cascade do |t|
t.bigint "user_id"
t.bigint "partner_id"
t.bigint "partner_manager_group_id"
t.datetime "created_at", null: false
t.datetime "updated_at", null: false
t.index ["partner_id"], name: "index_partner_managers_on_partner_id"
t.index ["partner_manager_group_id"], name: "index_partner_managers_on_partner_manager_group_id"
t.index ["user_id"], name: "index_partner_managers_on_user_id"
end
create_table "partner_managers_groups", options: "ENGINE=InnoDB DEFAULT CHARSET=utf8", force: :cascade do |t|
t.bigint "partner_id", null: false
t.string "name", null: false
t.boolean "admin", default: false, null: false
t.datetime "created_at", null: false
t.datetime "updated_at", null: false
end
create_table "partners", id: :integer, options: "ENGINE=InnoDB DEFAULT CHARSET=utf8", force: :cascade do |t|
t.string "name"
t.datetime "created_at", null: false
t.datetime "updated_at", null: false
t.integer "school_id"
end
create_table "phone_app_versions", id: :integer, options: "ENGINE=InnoDB DEFAULT CHARSET=utf8", force: :cascade do |t|
t.string "version"
t.text "description"
t.datetime "created_at", null: false
t.datetime "updated_at", null: false
end
create_table "platform_samples", id: :integer, options: "ENGINE=InnoDB DEFAULT CHARSET=utf8", force: :cascade do |t|
t.string "samples_type"
t.text "contents"
t.datetime "created_at", null: false
t.datetime "updated_at", null: false
end
create_table "poll_answers", id: :integer, options: "ENGINE=InnoDB DEFAULT CHARSET=utf8", force: :cascade do |t|
t.integer "poll_question_id"
t.text "answer_text"
t.integer "answer_position"
t.datetime "created_at", null: false
t.datetime "updated_at", null: false
t.index ["poll_question_id"], name: "index_poll_answers_on_poll_question_id"
end
create_table "poll_group_settings", id: :integer, options: "ENGINE=InnoDB DEFAULT CHARSET=utf8", force: :cascade do |t|
t.integer "poll_id"
t.integer "course_group_id"
t.integer "course_id"
t.datetime "publish_time"
t.datetime "end_time"
t.datetime "created_at", null: false
t.datetime "updated_at", null: false
t.index ["course_group_id"], name: "index_poll_group_settings_on_course_group_id"
t.index ["course_id"], name: "index_poll_group_settings_on_course_id"
t.index ["poll_id"], name: "index_poll_group_settings_on_poll_id"
end
create_table "poll_questions", id: :integer, options: "ENGINE=InnoDB DEFAULT CHARSET=utf8", force: :cascade do |t|
t.text "question_title"
t.integer "question_type"
t.integer "is_necessary"
t.integer "poll_id"
t.datetime "created_at", null: false
t.datetime "updated_at", null: false
t.integer "question_number"
t.integer "max_choices", default: 0
t.integer "min_choices", default: 0
t.index ["poll_id"], name: "index_poll_questions_on_poll_id"
end
create_table "poll_users", id: :integer, options: "ENGINE=InnoDB DEFAULT CHARSET=utf8", force: :cascade do |t|
t.integer "user_id"
t.integer "poll_id"
t.datetime "created_at", null: false
t.datetime "updated_at", null: false
t.integer "commit_status", default: 0
t.datetime "start_at"
t.datetime "end_at"
t.boolean "is_delete", default: false
t.index ["poll_id", "user_id"], name: "index_poll_id_and_user_id", unique: true
end
create_table "poll_votes", id: :integer, options: "ENGINE=InnoDB DEFAULT CHARSET=utf8", force: :cascade do |t|
t.integer "user_id"
t.integer "poll_question_id", default: -1
t.integer "poll_answer_id"
t.text "vote_text"
t.datetime "created_at", null: false
t.datetime "updated_at", null: false
t.index ["poll_question_id", "user_id", "poll_answer_id"], name: "poll_answer_index", unique: true
end
create_table "polls", id: :integer, options: "ENGINE=InnoDB DEFAULT CHARSET=utf8", force: :cascade do |t|
t.string "polls_name"
t.string "polls_type"
t.integer "course_id"
t.integer "polls_status", default: 1
t.integer "user_id"
t.datetime "publish_time"
t.datetime "end_time"
t.datetime "created_at", null: false
t.datetime "updated_at", null: false
t.text "polls_description"
t.integer "show_result", default: 0
t.integer "exercise_bank_id"
t.boolean "is_public", default: false
t.boolean "unified_setting", default: true
t.boolean "un_anonymous", default: false
t.index ["course_id"], name: "index_polls_on_course_id"
end
create_table "portal_images", id: :integer, options: "ENGINE=InnoDB DEFAULT CHARSET=utf8", force: :cascade do |t|
t.string "name"
t.integer "position"
t.string "link"
t.boolean "status", default: false
t.datetime "created_at", null: false
t.datetime "updated_at", null: false
t.bigint "laboratory_id"
t.index ["laboratory_id"], name: "index_portal_images_on_laboratory_id"
end
create_table "praise_tread_caches", id: :integer, options: "ENGINE=InnoDB DEFAULT CHARSET=utf8", force: :cascade do |t|
t.integer "object_id", null: false
t.string "object_type"
t.integer "praise_num"
t.integer "tread_num"
t.datetime "created_at", null: false
t.datetime "updated_at", null: false
end
create_table "praise_treads", id: :integer, options: "ENGINE=InnoDB DEFAULT CHARSET=utf8", force: :cascade do |t|
t.integer "user_id", null: false
t.integer "praise_tread_object_id"
t.string "praise_tread_object_type"
t.integer "praise_or_tread", default: 1
t.datetime "created_at", null: false
t.datetime "updated_at", null: false
t.index ["praise_tread_object_id", "praise_tread_object_type"], name: "praise_tread"
end
create_table "principal_activities", id: :integer, options: "ENGINE=InnoDB DEFAULT CHARSET=utf8", force: :cascade do |t|
t.integer "user_id"
t.integer "principal_id"
t.integer "principal_act_id"
t.string "principal_act_type"
t.datetime "created_at", null: false
t.datetime "updated_at", null: false
end
create_table "private_messages", id: :integer, options: "ENGINE=InnoDB DEFAULT CHARSET=utf8", force: :cascade do |t|
t.integer "user_id"
t.integer "target_id"
t.integer "sender_id"
t.integer "receiver_id"
t.text "content"
t.datetime "send_time"
t.integer "status"
t.datetime "created_at", null: false
t.datetime "updated_at", null: false
t.index ["user_id"], name: "index_private_messages_on_user_id"
end
create_table "professional_levels", id: :integer, options: "ENGINE=InnoDB DEFAULT CHARSET=utf8", force: :cascade do |t|
t.string "level"
t.datetime "created_at", null: false
t.datetime "updated_at", null: false
end
create_table "program_bank_tests", id: :integer, options: "ENGINE=InnoDB DEFAULT CHARSET=utf8", force: :cascade do |t|
t.text "input"
t.text "output"
t.boolean "test_type"
t.integer "homework_bank_id"
t.datetime "created_at", null: false
t.datetime "updated_at", null: false
end
create_table "program_banks", id: :integer, options: "ENGINE=InnoDB DEFAULT CHARSET=utf8", force: :cascade do |t|
t.integer "user_id"
t.string "name"
t.text "description"
t.integer "homework_type"
t.integer "quotes", default: 0
t.boolean "is_public"
t.string "language"
t.text "standard_code", limit: 4294967295
t.integer "min_num"
t.integer "max_num"
t.boolean "base_on_project"
t.string "applicable_syllabus"
t.integer "homework_common_id"
t.datetime "created_at", null: false
t.datetime "updated_at", null: false
end
create_table "project_infos", id: :integer, options: "ENGINE=InnoDB DEFAULT CHARSET=utf8", force: :cascade do |t|
t.integer "project_id"
t.integer "user_id"
t.datetime "created_at", null: false
t.datetime "updated_at", null: false
end
create_table "project_package_applies", id: :integer, options: "ENGINE=InnoDB DEFAULT CHARSET=utf8", force: :cascade do |t|
t.integer "project_package_id"
t.string "status"
t.string "reason"
t.datetime "refused_at"
t.datetime "created_at", null: false
t.datetime "updated_at", null: false
t.index ["project_package_id"], name: "index_project_package_applies_on_project_package_id"
end
create_table "project_package_categories", id: :integer, options: "ENGINE=InnoDB DEFAULT CHARSET=utf8", force: :cascade do |t|
t.string "name"
t.integer "position"
end
create_table "project_packages", id: :integer, options: "ENGINE=InnoDB DEFAULT CHARSET=utf8", force: :cascade do |t|
t.integer "creator_id"
t.string "status"
t.string "title"
t.text "content"
t.string "contact_name"
t.string "contact_phone"
t.decimal "min_price", precision: 10
t.decimal "max_price", precision: 10
t.integer "visit_count", default: 0
t.integer "bidding_users_count", default: 0
t.datetime "deadline_at"
t.datetime "published_at"
t.datetime "bidding_finished_at"
t.datetime "created_at", null: false
t.datetime "updated_at", null: false
t.integer "project_package_category_id"
t.index ["creator_id"], name: "index_project_packages_on_creator_id"
t.index ["published_at"], name: "index_project_packages_on_published_at"
end
create_table "project_scores", id: :integer, options: "ENGINE=InnoDB DEFAULT CHARSET=utf8", force: :cascade do |t|
t.string "project_id"
t.integer "score"
t.datetime "created_at", null: false
t.datetime "updated_at", null: false
t.integer "issue_num", default: 0
t.integer "issue_journal_num", default: 0
t.integer "news_num", default: 0
t.integer "documents_num", default: 0
t.integer "changeset_num", default: 0
t.integer "board_message_num", default: 0
t.integer "board_num", default: 0
t.integer "attach_num", default: 0
t.datetime "commit_time"
t.integer "pull_request_num", default: 0
end
create_table "project_statuses", id: :integer, options: "ENGINE=InnoDB DEFAULT CHARSET=utf8", force: :cascade do |t|
t.integer "changesets_count"
t.integer "watchers_count"
t.integer "project_id"
t.integer "project_type"
t.float "grade", default: 0.0
t.integer "course_ac_para", default: 0
t.index ["grade"], name: "index_project_statuses_on_grade"
end
create_table "projecting_softapplictions", id: :integer, options: "ENGINE=InnoDB DEFAULT CHARSET=utf8", force: :cascade do |t|
t.integer "user_id"
t.integer "softapplication_id"
t.integer "project_id"
t.datetime "created_at", null: false
t.datetime "updated_at", null: false
end
create_table "projects", id: :integer, options: "ENGINE=InnoDB DEFAULT CHARSET=utf8", force: :cascade do |t|
t.string "name", default: "", null: false
t.text "description"
t.string "homepage", default: ""
t.boolean "is_public", default: true, null: false
t.integer "parent_id"
t.datetime "created_on"
t.datetime "updated_on"
t.string "identifier"
t.integer "status", default: 1, null: false
t.integer "lft"
t.integer "rgt"
t.boolean "inherit_members", default: false, null: false
t.integer "project_type"
t.boolean "hidden_repo", default: false, null: false
t.integer "attachmenttype", default: 1
t.integer "user_id"
t.integer "dts_test", default: 0
t.string "enterprise_name"
t.integer "organization_id"
t.integer "project_new_type"
t.integer "gpid"
t.integer "forked_from_project_id"
t.integer "forked_count"
t.integer "publish_resource", default: 0
t.integer "visits", default: 0
t.integer "hot", default: 0
t.string "invite_code"
t.string "qrcode"
t.integer "qrcode_expiretime", default: 0
t.text "script"
t.integer "training_status", limit: 1, default: 0
t.string "rep_identifier"
t.index ["lft"], name: "index_projects_on_lft"
t.index ["rgt"], name: "index_projects_on_rgt"
end
create_table "projects_trackers", id: false, options: "ENGINE=InnoDB DEFAULT CHARSET=utf8", force: :cascade do |t|
t.integer "project_id", default: 0, null: false
t.integer "tracker_id", default: 0, null: false
t.index ["project_id", "tracker_id"], name: "projects_trackers_unique", unique: true
t.index ["project_id"], name: "projects_trackers_project_id"
end
create_table "pull_requests", id: :integer, options: "ENGINE=InnoDB DEFAULT CHARSET=utf8", force: :cascade do |t|
t.integer "pull_request_id"
t.integer "gpid"
t.integer "user_id"
t.datetime "created_at", null: false
t.datetime "updated_at", null: false
t.integer "status", default: 0
t.integer "project_id"
t.string "title"
end
create_table "quality_analyses", id: :integer, options: "ENGINE=InnoDB DEFAULT CHARSET=utf8", force: :cascade do |t|
t.integer "project_id"
t.string "author_login"
t.string "rep_identifier"
t.datetime "created_at", null: false
t.datetime "updated_at", null: false
t.integer "sonar_version", default: 0
t.string "path"
t.string "branch"
t.string "language"
t.string "sonar_name"
end
create_table "queries", id: :integer, options: "ENGINE=InnoDB DEFAULT CHARSET=utf8", force: :cascade do |t|
t.integer "project_id"
t.string "name", default: "", null: false
t.text "filters"
t.integer "user_id", default: 0, null: false
t.boolean "is_public", default: false, null: false
t.text "column_names"
t.text "sort_criteria"
t.string "group_by"
t.string "type"
t.index ["project_id"], name: "index_queries_on_project_id"
t.index ["user_id"], name: "index_queries_on_user_id"
end
create_table "question_banks", id: :integer, options: "ENGINE=InnoDB DEFAULT CHARSET=utf8", force: :cascade do |t|
t.text "name"
t.integer "container_id"
t.string "container_type"
t.integer "quotes"
t.integer "user_id"
t.boolean "is_public"
t.integer "course_list_id"
t.datetime "created_at", null: false
t.datetime "updated_at", null: false
end
create_table "reference_materials", id: :integer, options: "ENGINE=InnoDB DEFAULT CHARSET=utf8", force: :cascade do |t|
t.string "book"
t.string "editor"
t.string "press"
t.integer "syllabus_id"
t.datetime "created_at", null: false
t.datetime "updated_at", null: false
t.index ["syllabus_id"], name: "index_reference_materials_on_syllabus_id"
end
create_table "relationships", options: "ENGINE=InnoDB DEFAULT CHARSET=utf8", force: :cascade do |t|
t.integer "follower_id"
t.integer "followed_id"
t.datetime "created_at", null: false
t.datetime "updated_at", null: false
t.index ["followed_id"], name: "index_relationships_on_followed_id"
t.index ["follower_id", "followed_id"], name: "index_relationships_on_follower_id_and_followed_id", unique: true
t.index ["follower_id"], name: "index_relationships_on_follower_id"
end
create_table "relative_memo_to_open_source_projects", id: :integer, options: "ENGINE=InnoDB DEFAULT CHARSET=utf8", force: :cascade do |t|
t.integer "osp_id"
t.integer "relative_memo_id"
t.datetime "created_at", null: false
t.datetime "updated_at", null: false
end
create_table "relative_memos", id: :integer, options: "ENGINE=InnoDB DEFAULT CHARSET=utf8", force: :cascade do |t|
t.integer "osp_id"
t.integer "parent_id"
t.string "subject", null: false
t.text "content", limit: 16777215, null: false
t.integer "author_id"
t.integer "replies_count", default: 0
t.integer "last_reply_id"
t.boolean "lock", default: false
t.boolean "sticky", default: false
t.boolean "is_quote", default: false
t.datetime "created_at", null: false
t.datetime "updated_at", null: false
t.integer "viewed_count_crawl", default: 0
t.integer "viewed_count_local", default: 0
t.string "url"
t.string "username"
t.string "userhomeurl"
t.date "date_collected"
t.string "topic_resource"
end
create_table "rep_statics", id: :integer, options: "ENGINE=InnoDB DEFAULT CHARSET=utf8", force: :cascade do |t|
t.integer "project_id"
t.integer "commits_num"
t.string "uname"
t.string "email"
t.integer "add"
t.integer "del"
t.datetime "created_at", null: false
t.datetime "updated_at", null: false
t.integer "changeset"
end
create_table "repertoires", id: :integer, options: "ENGINE=InnoDB DEFAULT CHARSET=utf8", force: :cascade do |t|
t.string "name"
t.datetime "created_at", null: false
t.datetime "updated_at", null: false
end
create_table "repositories", id: :integer, options: "ENGINE=InnoDB DEFAULT CHARSET=utf8", force: :cascade do |t|
t.integer "project_id", default: 0, null: false
t.string "url", default: "", null: false
t.string "login", limit: 60, default: ""
t.string "password", default: ""
t.string "root_url", default: ""
t.string "type"
t.string "path_encoding", limit: 64
t.string "log_encoding", limit: 64
t.text "extra_info"
t.string "identifier"
t.boolean "is_default", default: false
t.boolean "hidden", default: false
t.integer "shixun_id"
t.integer "myshixun_id"
t.index ["project_id"], name: "index_repositories_on_project_id"
end
create_table "resource_banks", id: :integer, options: "ENGINE=InnoDB DEFAULT CHARSET=utf8", force: :cascade do |t|
t.integer "course_id"
t.integer "attachment_id"
t.string "filename"
t.string "disk_filename"
t.integer "filesize"
t.string "digest"
t.integer "downloads"
t.integer "user_id"
t.text "description"
t.string "disk_directory"
t.boolean "is_public"
t.integer "copy_from"
t.integer "quotes"
t.string "applicable_syllabus"
t.integer "major_level"
t.integer "discipline_category_id"
t.integer "first_level_discipline_id"
t.datetime "created_at", null: false
t.datetime "updated_at", null: false
t.string "content_type"
t.index ["course_id"], name: "index_resource_banks_on_course_id"
t.index ["user_id"], name: "index_resource_banks_on_user_id"
end
create_table "resumes", options: "ENGINE=InnoDB DEFAULT CHARSET=utf8", force: :cascade do |t|
t.bigint "user_id"
t.string "name"
t.integer "sex"
t.date "birth_on"
t.date "job_year"
t.string "mobile"
t.text "job_position"
t.text "city"
t.integer "salary"
t.string "job_category"
t.text "experience"
t.text "education"
t.text "evaluate"
t.boolean "attachmentable"
t.datetime "created_at", null: false
t.datetime "updated_at", null: false
t.index ["user_id"], name: "index_resumes_on_user_id"
end
create_table "rich_rich_files", id: :integer, options: "ENGINE=InnoDB DEFAULT CHARSET=utf8", force: :cascade do |t|
t.datetime "created_at", null: false
t.datetime "updated_at", null: false
t.string "rich_file_file_name"
t.string "rich_file_content_type"
t.integer "rich_file_file_size"
t.datetime "rich_file_updated_at"
t.string "owner_type"
t.integer "owner_id"
t.text "uri_cache"
t.string "simplified_type", default: "file"
end
create_table "roles", id: :integer, options: "ENGINE=InnoDB DEFAULT CHARSET=utf8", force: :cascade do |t|
t.string "name", limit: 30, default: "", null: false
t.integer "position", default: 1
t.boolean "assignable", default: true
t.integer "builtin", default: 0, null: false
t.text "permissions"
t.string "issues_visibility", limit: 30, default: "default", null: false
end
create_table "run_code_messages", id: :integer, options: "ENGINE=InnoDB DEFAULT CHARSET=utf8", force: :cascade do |t|
t.integer "status"
t.string "message"
t.integer "game_id"
t.datetime "created_at", null: false
t.datetime "updated_at", null: false
t.index ["game_id"], name: "index_run_code_messages_on_game_id"
end
create_table "salesman_channels", options: "ENGINE=InnoDB DEFAULT CHARSET=utf8", force: :cascade do |t|
t.bigint "salesman_id"
t.bigint "school_id"
t.datetime "created_at", null: false
t.datetime "updated_at", null: false
t.index ["salesman_id", "school_id"], name: "index_salesman_channels_on_salesman_id_and_school_id", unique: true
t.index ["salesman_id"], name: "index_salesman_channels_on_salesman_id"
t.index ["school_id"], name: "index_salesman_channels_on_school_id"
end
create_table "salesman_customers", options: "ENGINE=InnoDB DEFAULT CHARSET=utf8", force: :cascade do |t|
t.bigint "salesman_id"
t.bigint "user_id"
t.bigint "school_id"
t.datetime "created_at", null: false
t.datetime "updated_at", null: false
t.index ["salesman_id", "user_id"], name: "index_salesman_customers_on_salesman_id_and_user_id", unique: true
t.index ["salesman_id"], name: "index_salesman_customers_on_salesman_id"
t.index ["school_id"], name: "index_salesman_customers_on_school_id"
t.index ["user_id"], name: "index_salesman_customers_on_user_id"
end
create_table "salesmans", options: "ENGINE=InnoDB DEFAULT CHARSET=utf8", force: :cascade do |t|
t.bigint "user_id"
t.string "name"
t.integer "salesman_channels_count"
t.integer "salesman_customers_count"
t.datetime "created_at", null: false
t.datetime "updated_at", null: false
t.index ["user_id"], name: "index_salesmans_on_user_id"
end
create_table "salesmen", options: "ENGINE=InnoDB DEFAULT CHARSET=utf8", force: :cascade do |t|
t.bigint "user_id"
t.string "name"
t.integer "salesman_channels_count"
t.integer "salesman_customers_count"
t.datetime "created_at", null: false
t.datetime "updated_at", null: false
t.index ["user_id"], name: "index_salesmen_on_user_id"
end
create_table "school_daily_active_users", id: :integer, options: "ENGINE=InnoDB DEFAULT CHARSET=utf8", force: :cascade do |t|
t.integer "school_daily_report_id"
t.integer "user_id"
t.index ["school_daily_report_id"], name: "index_school_daily_active_users_on_school_daily_report_id"
end
create_table "school_daily_reports", id: :integer, options: "ENGINE=InnoDB DEFAULT CHARSET=utf8", force: :cascade do |t|
t.integer "school_id"
t.string "school_name"
t.integer "teacher_increase_count"
t.integer "student_increase_count"
t.integer "course_increase_count"
t.integer "shixun_increase_count"
t.integer "active_user_count"
t.date "date"
t.datetime "created_at", null: false
t.datetime "updated_at", null: false
t.integer "shixun_homework_count", default: 0
t.integer "shixun_evaluate_count", default: 0
t.index ["date", "active_user_count"], name: "index_school_daily_reports_on_date_and_active_user_count"
t.index ["date", "course_increase_count"], name: "index_school_daily_reports_on_date_and_course_increase_count"
t.index ["date", "shixun_increase_count"], name: "index_school_daily_reports_on_date_and_shixun_increase_count"
t.index ["date", "student_increase_count"], name: "index_school_daily_reports_on_date_and_student_increase_count"
t.index ["date", "teacher_increase_count"], name: "index_school_daily_reports_on_date_and_teacher_increase_count"
t.index ["school_id", "date"], name: "index_school_daily_reports_on_school_id_and_date", unique: true
end
create_table "school_images", id: :integer, options: "ENGINE=InnoDB DEFAULT CHARSET=utf8", force: :cascade do |t|
t.string "name"
t.integer "position"
t.string "link"
t.boolean "status", default: false
t.integer "school_id"
t.datetime "created_at", null: false
t.datetime "updated_at", null: false
end
create_table "school_reports", id: :integer, options: "ENGINE=InnoDB DEFAULT CHARSET=utf8", force: :cascade do |t|
t.integer "school_id"
t.string "school_name"
t.integer "shixun_evaluate_count"
t.datetime "created_at", null: false
t.datetime "updated_at", null: false
t.integer "student_work_count", default: 0
t.index ["school_id"], name: "index_school_reports_on_school_id"
t.index ["shixun_evaluate_count"], name: "index_school_reports_on_shixun_evaluate_count"
end
create_table "schools", id: :integer, options: "ENGINE=InnoDB DEFAULT CHARSET=utf8", force: :cascade do |t|
t.string "name"
t.string "province"
t.datetime "created_at", null: false
t.datetime "updated_at", null: false
t.string "logo_link"
t.string "pinyin"
t.integer "school_type", default: 0
t.string "city"
t.string "address"
t.boolean "auto_users_trial", default: false
t.string "shool_code"
t.datetime "authorization_time"
t.integer "ec_auth", limit: 1, default: 0
t.string "identifier"
t.boolean "is_online", default: false
t.string "video_name"
t.string "video_desc"
t.string "course_link"
t.string "course_name"
t.integer "partner_id"
t.integer "customer_id"
t.index ["customer_id"], name: "index_schools_on_customer_id"
t.index ["identifier"], name: "index_schools_on_identifier"
t.index ["partner_id"], name: "index_schools_on_partner_id"
end
create_table "score_indicator_qualities", id: :integer, options: "ENGINE=InnoDB DEFAULT CHARSET=utf8", force: :cascade do |t|
t.string "name"
t.float "upper_limit"
t.float "lower_limit"
t.integer "score_set_id"
t.integer "position"
t.datetime "created_at", null: false
t.datetime "updated_at", null: false
end
create_table "score_indicators", id: :integer, options: "ENGINE=InnoDB DEFAULT CHARSET=utf8", force: :cascade do |t|
t.string "name"
t.string "description"
t.integer "score_set_id"
t.datetime "created_at", null: false
t.datetime "updated_at", null: false
t.float "scale"
end
create_table "score_quality_descriptions", id: :integer, options: "ENGINE=InnoDB DEFAULT CHARSET=utf8", force: :cascade do |t|
t.string "name"
t.integer "score_indicator_id"
t.integer "position"
t.datetime "created_at", null: false
t.datetime "updated_at", null: false
end
create_table "score_sets", id: :integer, options: "ENGINE=InnoDB DEFAULT CHARSET=utf8", force: :cascade do |t|
t.string "name"
t.datetime "created_at", null: false
t.datetime "updated_at", null: false
end
create_table "secdomains", id: :integer, options: "ENGINE=InnoDB DEFAULT CHARSET=utf8", force: :cascade do |t|
t.integer "sub_type"
t.string "subname"
t.integer "pid", default: 0
t.string "desc"
t.datetime "created_at", null: false
t.datetime "updated_at", null: false
end
create_table "seems_rateable_cached_ratings", id: :integer, options: "ENGINE=InnoDB DEFAULT CHARSET=utf8", force: :cascade do |t|
t.bigint "cacheable_id"
t.string "cacheable_type"
t.float "avg", null: false
t.integer "cnt", null: false
t.string "dimension"
t.datetime "created_at", null: false
t.datetime "updated_at", null: false
end
create_table "seems_rateable_rates", id: :integer, options: "ENGINE=InnoDB DEFAULT CHARSET=utf8", force: :cascade do |t|
t.bigint "rater_id"
t.integer "rateable_id"
t.string "rateable_type"
t.float "stars", null: false
t.string "dimension"
t.datetime "created_at", null: false
t.datetime "updated_at", null: false
t.integer "is_teacher_score", default: 0
end
create_table "settings", id: :integer, options: "ENGINE=InnoDB DEFAULT CHARSET=utf8", force: :cascade do |t|
t.string "name", default: "", null: false
t.text "value"
t.datetime "updated_on"
t.index ["name"], name: "index_settings_on_name"
end
create_table "shares", id: :integer, options: "ENGINE=InnoDB DEFAULT CHARSET=utf8", force: :cascade do |t|
t.date "created_on"
t.string "url"
t.string "title"
t.integer "share_type"
t.datetime "created_at", null: false
t.datetime "updated_at", null: false
t.integer "project_id"
t.integer "user_id"
t.string "description"
end
create_table "shield_activities", id: :integer, options: "ENGINE=InnoDB DEFAULT CHARSET=utf8", force: :cascade do |t|
t.string "container_type"
t.integer "container_id"
t.string "shield_type"
t.integer "shield_id"
t.datetime "created_at", null: false
t.datetime "updated_at", null: false
end
create_table "shield_wechat_messages", id: :integer, options: "ENGINE=InnoDB DEFAULT CHARSET=utf8", force: :cascade do |t|
t.integer "container_id"
t.string "container_type"
t.integer "shield_id"
t.string "shield_type"
t.datetime "created_at", null: false
t.datetime "updated_at", null: false
end
create_table "shixun_infos", options: "ENGINE=InnoDB DEFAULT CHARSET=utf8", force: :cascade do |t|
t.text "propaedeutics", limit: 4294967295
t.text "description", limit: 4294967295
t.text "evaluate_script", limit: 4294967295
t.integer "shixun_id"
t.datetime "created_at", null: false
t.datetime "updated_at", null: false
t.string "fork_reason"
t.index ["shixun_id"], name: "index_shixun_infos_on_shixun_id", unique: true
end
create_table "shixun_major_courses", id: :integer, options: "ENGINE=InnoDB DEFAULT CHARSET=utf8", force: :cascade do |t|
t.integer "shixun_id"
t.integer "course_list_id"
t.integer "major_id"
t.datetime "created_at", null: false
t.datetime "updated_at", null: false
t.index ["major_id"], name: "index_shixun_major_courses_on_major_id"
t.index ["shixun_id"], name: "index_shixun_major_courses_on_shixun_id"
end
create_table "shixun_members", id: :integer, options: "ENGINE=InnoDB DEFAULT CHARSET=utf8", force: :cascade do |t|
t.integer "user_id"
t.integer "shixun_id"
t.integer "role"
t.datetime "created_at", null: false
t.datetime "updated_at", null: false
t.index ["shixun_id"], name: "index_shixun_members_on_shixun_id"
t.index ["user_id", "shixun_id"], name: "index_shixun_members_on_user_id_and_shixun_id", unique: true
end
create_table "shixun_mirror_repositories", id: :integer, options: "ENGINE=InnoDB DEFAULT CHARSET=utf8", force: :cascade do |t|
t.integer "shixun_id"
t.integer "mirror_repository_id"
t.datetime "created_at", null: false
t.datetime "updated_at", null: false
t.index ["shixun_id"], name: "index_shixun_mirror_repositories_on_shixun_id"
end
create_table "shixun_modifies", id: :integer, options: "ENGINE=InnoDB DEFAULT CHARSET=utf8", force: :cascade do |t|
t.integer "shixun_id"
t.integer "myshixun_id"
t.integer "status", limit: 1, default: 0
t.datetime "created_at", null: false
t.datetime "updated_at", null: false
t.index ["shixun_id", "myshixun_id"], name: "shixun_id_myshixun_id"
end
create_table "shixun_ports", id: :integer, options: "ENGINE=InnoDB DEFAULT CHARSET=utf8", force: :cascade do |t|
t.integer "shixun_id"
t.integer "port"
t.datetime "created_at", null: false
t.datetime "updated_at", null: false
end
create_table "shixun_reviews", options: "ENGINE=InnoDB DEFAULT CHARSET=utf8", force: :cascade do |t|
t.bigint "user_id"
t.bigint "shixun_id"
t.string "evaluate_content"
t.integer "status"
t.string "review_type"
t.datetime "created_at", null: false
t.datetime "updated_at", null: false
t.index ["shixun_id"], name: "index_shixun_reviews_on_shixun_id"
t.index ["user_id"], name: "index_shixun_reviews_on_user_id"
end
create_table "shixun_schools", id: :integer, options: "ENGINE=InnoDB DEFAULT CHARSET=utf8", force: :cascade do |t|
t.integer "shixun_id"
t.integer "school_id"
t.datetime "created_at", null: false
t.datetime "updated_at", null: false
t.index ["shixun_id"], name: "index_shixun_schools_on_shixun_id"
end
create_table "shixun_secret_repositories", options: "ENGINE=InnoDB DEFAULT CHARSET=utf8", force: :cascade do |t|
t.bigint "shixun_id"
t.string "repo_name"
t.string "secret_dir_path"
t.datetime "created_at", null: false
t.datetime "updated_at", null: false
t.index ["shixun_id"], name: "index_shixun_secret_repositories_on_shixun_id", unique: true
end
create_table "shixun_service_configs", id: :integer, options: "ENGINE=InnoDB DEFAULT CHARSET=utf8", force: :cascade do |t|
t.integer "shixun_id"
t.integer "cpu_limit", default: 1
t.integer "memory_limit", default: 1024
t.integer "request_limit", default: 10
t.float "lower_cpu_limit", default: 0.1
t.integer "resource_limit", default: 10000
t.integer "mirror_repository_id"
t.datetime "created_at", null: false
t.datetime "updated_at", null: false
t.index ["shixun_id", "mirror_repository_id"], name: "shixun_id_mirror_id_unique", unique: true
end
create_table "shixun_tag_repertoires", id: :integer, options: "ENGINE=InnoDB DEFAULT CHARSET=utf8", force: :cascade do |t|
t.integer "shixun_id"
t.integer "tag_repertoire_id"
t.datetime "created_at", null: false
t.datetime "updated_at", null: false
t.index ["shixun_id", "tag_repertoire_id"], name: "shixun_id_tag_repertoire_id"
end
create_table "shixun_work_comments", options: "ENGINE=InnoDB DEFAULT CHARSET=utf8", force: :cascade do |t|
t.integer "student_work_id"
t.integer "challenge_id", default: 0
t.integer "user_id"
t.text "comment"
t.text "hidden_comment"
t.datetime "created_at", null: false
t.datetime "updated_at", null: false
t.boolean "batch_comment", default: false
t.index ["challenge_id"], name: "index_shixun_work_comments_on_challenge_id"
t.index ["student_work_id"], name: "index_shixun_work_comments_on_student_work_id"
t.index ["user_id"], name: "index_shixun_work_comments_on_user_id"
end
create_table "shixuns", id: :integer, options: "ENGINE=InnoDB DEFAULT CHARSET=utf8", force: :cascade do |t|
t.string "name"
t.integer "user_id"
t.integer "gpid"
t.integer "visits", default: 0
t.datetime "created_at", null: false
t.datetime "updated_at", null: false
t.integer "status", default: 0
t.string "language"
t.boolean "authentication", default: false
t.string "identifier"
t.integer "trainee", default: 1
t.integer "major_id"
t.integer "webssh", default: 0
t.boolean "homepage_show", default: false
t.boolean "hidden", default: false
t.integer "fork_from"
t.boolean "can_copy", default: false
t.datetime "modify_time"
t.datetime "reset_time"
t.datetime "publish_time"
t.integer "closer_id"
t.datetime "end_time"
t.string "git_url"
t.boolean "vnc", default: false
t.integer "myshixuns_count", default: 0
t.integer "challenges_count", default: 0
t.integer "use_scope", limit: 1, default: 0
t.integer "mirror_script_id"
t.string "image_text", limit: 60
t.boolean "code_hidden", default: false
t.boolean "task_pass", default: true
t.integer "exec_time", default: 20
t.boolean "test_set_permission", default: true
t.boolean "sigle_training", default: false
t.boolean "hide_code", default: false
t.boolean "multi_webssh", default: false
t.integer "excute_time"
t.string "repo_name"
t.float "averge_star", default: 5.0
t.datetime "opening_time"
t.integer "users_count", default: 0
t.boolean "forbid_copy", default: false
t.integer "pod_life", default: 0
t.boolean "vnc_evaluate", default: false
t.boolean "code_edit_permission", default: false
t.integer "laboratory_id"
t.boolean "vip", default: false
t.boolean "is_jupyter", default: false
t.integer "public", default: 0
t.boolean "is_wechat_support", default: false
t.boolean "to_be_built", default: false
t.integer "prebuild_click_count", default: 0
t.index ["identifier"], name: "index_shixuns_on_identifier"
t.index ["user_id"], name: "index_shixuns_on_user_id"
end
create_table "softapplications", id: :integer, options: "ENGINE=InnoDB DEFAULT CHARSET=utf8", force: :cascade do |t|
t.string "name"
t.text "description"
t.integer "app_type_id"
t.string "app_type_name"
t.string "android_min_version_available"
t.integer "user_id"
t.datetime "created_at", null: false
t.datetime "updated_at", null: false
t.integer "contest_id"
t.integer "softapplication_id"
t.integer "is_public"
t.string "application_developers"
t.string "deposit_project_url"
t.string "deposit_project"
t.integer "project_id"
end
create_table "sonar_errors", id: :integer, options: "ENGINE=InnoDB DEFAULT CHARSET=utf8", force: :cascade do |t|
t.integer "project_id"
t.string "jenkins_job_name"
t.text "output"
t.datetime "created_at", null: false
t.datetime "updated_at", null: false
end
create_table "ssos", id: :integer, options: "ENGINE=InnoDB DEFAULT CHARSET=utf8", force: :cascade do |t|
t.integer "user_id"
t.string "openid"
t.string "name"
t.string "password"
t.string "email"
t.integer "sex"
t.string "school"
t.datetime "created_at", null: false
t.datetime "updated_at", null: false
t.index ["user_id"], name: "index_ssos_on_user_id"
end
create_table "sta_alls", options: "ENGINE=InnoDB DEFAULT CHARSET=utf8", force: :cascade do |t|
t.integer "school_id", default: 0
t.integer "tea_count", default: 0
t.integer "stu_count", default: 0
t.integer "active_users_count", default: 0
t.integer "courses_count", default: 0
t.integer "curr_courses_count", default: 0
t.integer "homw_shixuns_count", default: 0
t.integer "homw_other_count", default: 0
t.integer "sources_count", default: 0
t.integer "videos_count", default: 0
t.integer "shixuns_count", default: 0
t.integer "myshixuns_count", default: 0
t.integer "mys_passed_count", default: 0
t.integer "games_count", default: 0
t.integer "games_passed_count", default: 0
t.integer "build_count", default: 0
t.datetime "created_at", null: false
t.datetime "updated_at", null: false
t.index ["school_id"], name: "index_sta_alls_on_school_id", unique: true
end
create_table "stage_shixuns", id: :integer, options: "ENGINE=InnoDB DEFAULT CHARSET=utf8", force: :cascade do |t|
t.integer "subject_id"
t.integer "stage_id"
t.integer "shixun_id"
t.integer "position"
t.datetime "created_at", null: false
t.datetime "updated_at", null: false
t.index ["shixun_id"], name: "index_stage_shixuns_on_shixun_id"
t.index ["stage_id"], name: "index_stage_shixuns_on_stage_id"
t.index ["subject_id"], name: "index_stage_shixuns_on_subject_id"
end
create_table "stages", id: :integer, options: "ENGINE=InnoDB DEFAULT CHARSET=utf8", force: :cascade do |t|
t.integer "subject_id"
t.string "name"
t.text "description"
t.integer "user_id"
t.integer "position"
t.datetime "created_at", null: false
t.datetime "updated_at", null: false
t.integer "shixuns_count", default: 0
t.index ["subject_id"], name: "index_stages_on_subject_id"
end
create_table "statistic_scores", id: :integer, options: "ENGINE=InnoDB DEFAULT CHARSET=utf8", force: :cascade do |t|
t.float "score"
t.datetime "created_at", null: false
t.datetime "updated_at", null: false
t.integer "base_score", default: 0
end
create_table "statistics", id: :integer, options: "ENGINE=InnoDB DEFAULT CHARSET=utf8", force: :cascade do |t|
t.float "score", default: 1.0
t.datetime "created_at", null: false
t.datetime "updated_at", null: false
end
create_table "student_graduation_topics", id: :integer, options: "ENGINE=InnoDB DEFAULT CHARSET=utf8", force: :cascade do |t|
t.integer "user_id"
t.integer "graduation_topic_id"
t.integer "course_id"
t.integer "member_id"
t.integer "status", default: 0
t.datetime "created_at", null: false
t.datetime "updated_at", null: false
t.integer "course_member_id"
t.index ["course_id"], name: "index_student_graduation_topics_on_course_id"
t.index ["graduation_topic_id"], name: "index_student_graduation_topics_on_graduation_topic_id"
t.index ["user_id"], name: "index_student_graduation_topics_on_user_id"
end
create_table "student_work_projects", id: :integer, options: "ENGINE=InnoDB DEFAULT CHARSET=utf8", force: :cascade do |t|
t.integer "homework_common_id"
t.integer "student_work_id"
t.integer "project_id"
t.integer "user_id"
t.integer "is_leader"
t.datetime "created_at", null: false
t.datetime "updated_at", null: false
t.integer "course_id"
t.index ["homework_common_id"], name: "index_student_work_projects_on_homework_common_id"
t.index ["project_id"], name: "index_student_work_projects_on_project_id"
t.index ["student_work_id"], name: "index_student_work_projects_on_student_work_id"
t.index ["user_id"], name: "index_student_work_projects_on_user_id"
end
create_table "student_work_tests", id: :integer, options: "ENGINE=InnoDB DEFAULT CHARSET=utf8", force: :cascade do |t|
t.integer "student_work_id"
t.datetime "created_at", null: false
t.datetime "updated_at", null: false
t.integer "status", default: 9
t.text "results"
t.text "src"
t.index ["student_work_id"], name: "index_student_work_tests_on_student_work_id"
end
create_table "student_works", id: :integer, options: "ENGINE=InnoDB DEFAULT CHARSET=utf8", force: :cascade do |t|
t.string "name"
t.text "description", limit: 4294967295
t.integer "homework_common_id"
t.integer "user_id"
t.float "final_score"
t.float "teacher_score"
t.float "student_score"
t.float "teaching_asistant_score"
t.integer "project_id", default: 0
t.datetime "created_at", null: false
t.datetime "updated_at", null: false
t.integer "late_penalty", default: 0
t.integer "absence_penalty", default: 0
t.float "system_score", default: 0.0
t.boolean "is_test", default: false
t.integer "simi_id"
t.integer "simi_value"
t.float "work_score"
t.integer "work_status", default: 0
t.datetime "commit_time"
t.integer "is_delete", default: 0
t.integer "appeal_penalty", default: 0
t.boolean "re_commit", default: false
t.text "late_reason"
t.integer "group_id", default: 0
t.integer "myshixun_id", default: 0
t.datetime "update_time"
t.integer "commit_user_id"
t.boolean "ultimate_score", default: false
t.integer "cost_time", default: 0
t.integer "compelete_status", default: 0
t.float "efficiency", default: 0.0
t.float "eff_score", default: 0.0
t.datetime "calculation_time"
t.integer "update_user_id"
t.index ["homework_common_id", "user_id"], name: "index_on_homework_common_id_user_id", unique: true
t.index ["myshixun_id"], name: "index_student_works_on_myshixun_id"
end
create_table "student_works_evaluation_distributions", id: :integer, options: "ENGINE=InnoDB DEFAULT CHARSET=utf8", force: :cascade do |t|
t.integer "student_work_id"
t.integer "user_id"
t.datetime "created_at", null: false
t.datetime "updated_at", null: false
t.index ["student_work_id", "user_id"], name: "index_on_student_work_id_and_user_id", unique: true
end
create_table "student_works_scores", id: :integer, options: "ENGINE=InnoDB DEFAULT CHARSET=utf8", force: :cascade do |t|
t.integer "student_work_id"
t.integer "user_id"
t.float "score"
t.text "comment"
t.integer "reviewer_role"
t.datetime "created_at", null: false
t.datetime "updated_at", null: false
t.integer "appeal_status", default: 0
t.boolean "is_hidden", default: false
t.boolean "is_ultimate", default: false
t.boolean "is_invalid", default: false
t.integer "homework_common_id", default: 0
t.index ["student_work_id"], name: "student_work_id"
t.index ["user_id"], name: "user_id"
end
create_table "student_works_scores_appeals", id: :integer, options: "ENGINE=InnoDB DEFAULT CHARSET=utf8", force: :cascade do |t|
t.integer "student_works_score_id"
t.integer "user_id"
t.text "comment"
t.integer "appeal_status"
t.datetime "created_at", null: false
t.datetime "updated_at", null: false
t.index ["student_works_score_id"], name: "index_student_works_scores_appeals_on_student_works_score_id"
end
create_table "students_for_courses", id: :integer, options: "ENGINE=InnoDB DEFAULT CHARSET=utf8", force: :cascade do |t|
t.integer "student_id"
t.integer "course_id"
t.datetime "created_at", null: false
t.datetime "updated_at", null: false
t.index ["course_id"], name: "index_students_for_courses_on_course_id"
t.index ["student_id"], name: "index_students_for_courses_on_student_id"
end
create_table "sub_discipline_containers", options: "ENGINE=InnoDB DEFAULT CHARSET=utf8", force: :cascade do |t|
t.bigint "sub_discipline_id"
t.integer "container_id"
t.string "container_type"
t.datetime "created_at", null: false
t.datetime "updated_at", null: false
t.index ["container_type", "container_id"], name: "index_on_container"
t.index ["sub_discipline_id"], name: "index_sub_discipline_containers_on_sub_discipline_id"
end
create_table "sub_disciplines", options: "ENGINE=InnoDB DEFAULT CHARSET=utf8", force: :cascade do |t|
t.bigint "discipline_id"
t.string "name"
t.boolean "subject", default: true
t.boolean "shixun", default: true
t.boolean "question", default: true
t.datetime "created_at", null: false
t.datetime "updated_at", null: false
t.integer "position", default: 0
t.index ["discipline_id"], name: "index_sub_disciplines_on_discipline_id"
end
create_table "sub_document_comments", id: :integer, options: "ENGINE=InnoDB DEFAULT CHARSET=utf8", force: :cascade do |t|
t.text "content"
t.text "title"
t.integer "sub_domain_id"
t.integer "creator_id"
t.integer "parent_id"
t.integer "reply_id"
t.integer "locked"
t.integer "sticky"
t.integer "org_subfield_id"
t.datetime "created_at", null: false
t.datetime "updated_at", null: false
end
create_table "sub_domains", id: :integer, options: "ENGINE=InnoDB DEFAULT CHARSET=utf8", force: :cascade do |t|
t.integer "org_subfield_id"
t.integer "priority", default: 0
t.string "name"
t.string "field_type"
t.integer "hide", default: 0
t.integer "status", default: 0
t.datetime "created_at", null: false
t.datetime "updated_at", null: false
end
create_table "sub_repertoires", id: :integer, options: "ENGINE=InnoDB DEFAULT CHARSET=utf8", force: :cascade do |t|
t.string "name"
t.integer "repertoire_id"
t.datetime "created_at", null: false
t.datetime "updated_at", null: false
t.index ["repertoire_id"], name: "index_sub_repertoires_on_repertoire_id"
end
create_table "subfield_subdomain_dirs", id: :integer, options: "ENGINE=InnoDB DEFAULT CHARSET=utf8", force: :cascade do |t|
t.integer "org_subfield_id"
t.string "name"
t.datetime "created_at", null: false
t.datetime "updated_at", null: false
end
create_table "subject_appointments", options: "ENGINE=InnoDB DEFAULT CHARSET=utf8", force: :cascade do |t|
t.bigint "subject_id"
t.bigint "user_id"
t.datetime "created_at", null: false
t.datetime "updated_at", null: false
t.index ["subject_id"], name: "index_subject_appointments_on_subject_id"
t.index ["user_id"], name: "index_subject_appointments_on_user_id"
end
create_table "subject_course_records", options: "ENGINE=InnoDB DEFAULT CHARSET=utf8", force: :cascade do |t|
t.bigint "subject_id"
t.bigint "school_id"
t.string "school_name"
t.integer "course_count", default: 0
t.integer "student_count", default: 0
t.integer "choice_shixun_num", default: 0
t.integer "choice_shixun_frequency", default: 0
t.datetime "created_at", null: false
t.datetime "updated_at", null: false
t.index ["school_id", "subject_id"], name: "couse_and_school_index", unique: true
t.index ["school_id"], name: "index_subject_course_records_on_school_id"
t.index ["subject_id"], name: "index_subject_course_records_on_subject_id"
end
create_table "subject_level_systems", id: :integer, options: "ENGINE=InnoDB DEFAULT CHARSET=utf8", force: :cascade do |t|
t.integer "level"
t.string "name"
t.datetime "created_at", null: false
t.datetime "updated_at", null: false
end
create_table "subject_members", id: :integer, options: "ENGINE=InnoDB DEFAULT CHARSET=utf8", force: :cascade do |t|
t.integer "subject_id"
t.integer "user_id"
t.integer "role"
t.datetime "created_at", null: false
t.datetime "updated_at", null: false
t.integer "position", default: 1
t.index ["subject_id"], name: "index_subject_members_on_subject_id"
t.index ["user_id"], name: "index_subject_members_on_user_id"
end
create_table "subject_records", options: "ENGINE=InnoDB DEFAULT CHARSET=utf8", force: :cascade do |t|
t.bigint "subject_id"
t.integer "study_count", default: 0
t.integer "course_study_count", default: 0
t.integer "initiative_study", default: 0
t.integer "passed_count", default: 0
t.integer "course_used_count", default: 0
t.integer "school_used_count", default: 0
t.datetime "created_at", null: false
t.datetime "updated_at", null: false
t.index ["subject_id"], name: "index_subject_records_on_subject_id", unique: true
end
create_table "subject_shixun_infos", options: "ENGINE=InnoDB DEFAULT CHARSET=utf8", force: :cascade do |t|
t.bigint "subject_id"
t.bigint "shixun_id"
t.string "stage"
t.string "shixun_name"
t.integer "challenge_count", default: 0
t.integer "course_count", default: 0
t.integer "school_count", default: 0
t.integer "used_count", default: 0
t.integer "passed_count", default: 0
t.integer "evaluate_count", default: 0
t.integer "passed_ave_time", default: 0
t.datetime "created_at", null: false
t.datetime "updated_at", null: false
t.index ["shixun_id", "subject_id"], name: "index_subject_shixun_infos_on_shixun_id_and_subject_id", unique: true
t.index ["shixun_id"], name: "index_subject_shixun_infos_on_shixun_id"
t.index ["subject_id"], name: "index_subject_shixun_infos_on_subject_id"
end
create_table "subject_user_infos", options: "ENGINE=InnoDB DEFAULT CHARSET=utf8", force: :cascade do |t|
t.bigint "user_id"
t.bigint "subject_id"
t.string "username"
t.integer "passed_myshixun_count", default: 0
t.integer "passed_games_count", default: 0
t.integer "code_line_count", default: 0
t.integer "evaluate_count", default: 0
t.string "cost_time", default: "0"
t.datetime "created_at", null: false
t.datetime "updated_at", null: false
t.index ["subject_id"], name: "index_subject_user_infos_on_subject_id"
t.index ["user_id", "subject_id"], name: "index_subject_user_infos_on_user_id_and_subject_id", unique: true
t.index ["user_id"], name: "index_subject_user_infos_on_user_id"
end
create_table "subjects", id: :integer, options: "ENGINE=InnoDB DEFAULT CHARSET=utf8", force: :cascade do |t|
t.string "name"
t.text "description"
t.integer "user_id"
t.integer "visits", default: 1
t.integer "status", default: 0
t.integer "course_list_id"
t.integer "major_id"
t.datetime "created_at", null: false
t.datetime "updated_at", null: false
t.boolean "hidden", default: false
t.text "learning_notes"
t.string "introduction"
t.integer "stages_count", default: 0
t.integer "stage_shixuns_count", default: 0
t.boolean "homepage_show", default: false
t.integer "repertoire_id"
t.integer "score_count"
t.datetime "publish_time"
t.integer "shixuns_count", default: 0
t.integer "subject_level_system_id"
t.boolean "excellent", default: false
t.integer "student_count", default: 0
t.integer "participant_count", default: 0
t.string "team_title", default: "教学团队"
t.integer "copy_subject_id"
t.integer "public", default: 0
t.boolean "show_mobile", default: false
t.index ["course_list_id"], name: "index_subjects_on_course_list_id"
t.index ["major_id"], name: "index_subjects_on_major_id"
t.index ["subject_level_system_id"], name: "index_subjects_on_subject_level_system_id"
t.index ["user_id"], name: "index_subjects_on_user_id"
end
create_table "syllabus_members", id: :integer, options: "ENGINE=InnoDB DEFAULT CHARSET=utf8", force: :cascade do |t|
t.integer "rank"
t.integer "syllabus_id"
t.integer "user_id"
t.datetime "created_at", null: false
t.datetime "updated_at", null: false
t.index ["rank"], name: "index_syllabus_members_on_rank"
t.index ["syllabus_id"], name: "index_syllabus_members_on_syllabus_id"
t.index ["user_id"], name: "index_syllabus_members_on_user_id"
end
create_table "syllabus_update_records", id: :integer, options: "ENGINE=InnoDB DEFAULT CHARSET=utf8", force: :cascade do |t|
t.integer "user_id"
t.integer "syllabus_id"
t.integer "property"
t.datetime "created_at", null: false
t.datetime "updated_at", null: false
t.index ["syllabus_id"], name: "index_syllabus_update_records_on_syllabus_id"
t.index ["user_id"], name: "index_syllabus_update_records_on_user_id"
end
create_table "syllabuses", id: :integer, options: "ENGINE=InnoDB DEFAULT CHARSET=utf8", force: :cascade do |t|
t.string "title"
t.text "description"
t.integer "user_id"
t.datetime "created_at", null: false
t.datetime "updated_at", null: false
t.string "eng_name"
t.integer "syllabus_type"
t.integer "credit"
t.integer "hours"
t.integer "theory_hours"
t.integer "practice_hours"
t.string "applicable_major"
t.string "pre_course"
t.integer "visits", default: 0
t.integer "des_status", default: 0
t.integer "major_level"
t.integer "discipline_category_id"
t.integer "first_level_discipline_id"
t.integer "major_id"
t.index ["user_id"], name: "index_syllabuses_on_user_id"
end
create_table "system_messages", id: :integer, options: "ENGINE=InnoDB DEFAULT CHARSET=utf8", force: :cascade do |t|
t.integer "user_id"
t.string "content"
t.datetime "created_at", null: false
t.datetime "updated_at", null: false
t.text "description"
t.string "subject"
end
create_table "system_update_notices", id: :integer, options: "ENGINE=InnoDB DEFAULT CHARSET=utf8", force: :cascade do |t|
t.string "subject"
t.text "notes"
t.datetime "start_time"
t.datetime "end_time"
t.datetime "created_at", null: false
t.datetime "updated_at", null: false
t.integer "notice_type"
end
create_table "tag_discipline_containers", options: "ENGINE=InnoDB DEFAULT CHARSET=utf8", force: :cascade do |t|
t.bigint "tag_discipline_id"
t.integer "container_id"
t.string "container_type"
t.datetime "created_at", null: false
t.datetime "updated_at", null: false
t.index ["container_type", "container_id"], name: "index_on_container"
t.index ["tag_discipline_id"], name: "index_tag_discipline_containers_on_tag_discipline_id"
end
create_table "tag_disciplines", options: "ENGINE=InnoDB DEFAULT CHARSET=utf8", force: :cascade do |t|
t.bigint "sub_discipline_id"
t.string "name"
t.boolean "subject", default: true
t.boolean "shixun", default: true
t.boolean "question", default: true
t.datetime "created_at", null: false
t.datetime "updated_at", null: false
t.integer "user_id"
t.integer "position", default: 0
t.index ["sub_discipline_id"], name: "index_tag_disciplines_on_sub_discipline_id"
end
create_table "tag_repertoires", id: :integer, options: "ENGINE=InnoDB DEFAULT CHARSET=utf8", force: :cascade do |t|
t.string "name"
t.integer "sub_repertoire_id"
t.datetime "created_at", null: false
t.datetime "updated_at", null: false
end
create_table "taggings", id: :integer, options: "ENGINE=InnoDB DEFAULT CHARSET=utf8", force: :cascade do |t|
t.integer "tag_id"
t.integer "taggable_id"
t.string "taggable_type"
t.integer "tagger_id"
t.string "tagger_type"
t.string "context", limit: 128
t.datetime "created_at"
t.index ["context"], name: "index_taggings_on_context"
t.index ["tag_id", "taggable_id", "taggable_type", "context", "tagger_id", "tagger_type"], name: "taggings_idx", unique: true
t.index ["tag_id"], name: "index_taggings_on_tag_id"
t.index ["taggable_id", "taggable_type", "context"], name: "index_taggings_on_taggable_id_and_taggable_type_and_context"
t.index ["taggable_id", "taggable_type", "tagger_id", "context"], name: "taggings_idy"
t.index ["taggable_id"], name: "index_taggings_on_taggable_id"
t.index ["taggable_type"], name: "index_taggings_on_taggable_type"
t.index ["tagger_id", "tagger_type"], name: "index_taggings_on_tagger_id_and_tagger_type"
t.index ["tagger_id"], name: "index_taggings_on_tagger_id"
end
create_table "tags", id: :integer, options: "ENGINE=InnoDB DEFAULT CHARSET=utf8", force: :cascade do |t|
t.string "name", collation: "utf8_bin"
t.integer "taggings_count", default: 0
end
create_table "teacher_course_groups", id: :integer, options: "ENGINE=InnoDB DEFAULT CHARSET=utf8", force: :cascade do |t|
t.integer "member_id"
t.integer "course_group_id"
t.integer "user_id"
t.integer "course_id"
t.datetime "created_at", null: false
t.datetime "updated_at", null: false
t.integer "course_member_id"
t.index ["course_group_id"], name: "index_teacher_course_groups_on_course_group_id"
t.index ["course_id"], name: "index_teacher_course_groups_on_course_id"
t.index ["course_member_id"], name: "index_teacher_course_groups_on_course_member_id"
t.index ["user_id"], name: "index_teacher_course_groups_on_user_id"
end
create_table "teacher_group_records", options: "ENGINE=InnoDB DEFAULT CHARSET=utf8", force: :cascade do |t|
t.bigint "user_id"
t.bigint "course_id"
t.integer "group_id"
t.datetime "created_at", null: false
t.datetime "updated_at", null: false
t.index ["course_id"], name: "index_teacher_group_records_on_course_id"
t.index ["user_id", "course_id"], name: "index_teacher_group_records_on_user_id_and_course_id", unique: true
t.index ["user_id"], name: "index_teacher_group_records_on_user_id"
end
create_table "teachers", id: :integer, options: "ENGINE=InnoDB DEFAULT CHARSET=utf8", force: :cascade do |t|
t.string "tea_name"
t.string "location"
t.integer "couurse_time"
t.integer "course_code"
t.datetime "created_at", null: false
t.datetime "updated_at", null: false
t.string "extra"
end
create_table "team_members", id: :integer, options: "ENGINE=InnoDB DEFAULT CHARSET=utf8", force: :cascade do |t|
t.integer "competition_team_id"
t.integer "user_id"
t.integer "role"
t.datetime "created_at", null: false
t.datetime "updated_at", null: false
t.integer "competition_id"
t.boolean "is_teacher", default: false
t.index ["competition_id"], name: "index_team_members_on_competition_id"
t.index ["competition_team_id"], name: "index_team_members_on_competition_team_id"
t.index ["user_id"], name: "index_team_members_on_user_id"
end
create_table "test_sets", id: :integer, options: "ENGINE=InnoDB DEFAULT CHARSET=utf8", force: :cascade do |t|
t.text "input", limit: 4294967295
t.text "output", limit: 4294967295
t.integer "challenge_id"
t.datetime "created_at", null: false
t.datetime "updated_at", null: false
t.boolean "is_public", default: true
t.boolean "result", default: true
t.integer "position"
t.integer "score"
t.string "match_rule"
t.boolean "ignore_space", default: true
t.index ["challenge_id"], name: "testset"
end
create_table "tidings", id: :integer, options: "ENGINE=InnoDB DEFAULT CHARSET=utf8", force: :cascade do |t|
t.integer "user_id"
t.integer "trigger_user_id"
t.integer "container_id"
t.string "container_type"
t.integer "parent_container_id"
t.string "parent_container_type"
t.integer "belong_container_id"
t.string "belong_container_type"
t.integer "status", default: 0
t.boolean "viewed"
t.datetime "created_at", null: false
t.datetime "updated_at", null: false
t.string "tiding_type"
t.string "extra"
t.boolean "is_delete", default: false
t.index ["container_id"], name: "index_tidings_on_container_id"
t.index ["user_id"], name: "index_tidings_on_user_id"
end
create_table "time_entries", id: :integer, options: "ENGINE=InnoDB DEFAULT CHARSET=utf8", force: :cascade do |t|
t.integer "project_id", null: false
t.integer "user_id", null: false
t.integer "issue_id"
t.float "hours", null: false
t.string "comments"
t.integer "activity_id", null: false
t.date "spent_on", null: false
t.integer "tyear", null: false
t.integer "tmonth", null: false
t.integer "tweek", null: false
t.datetime "created_on", null: false
t.datetime "updated_on", null: false
t.index ["activity_id"], name: "index_time_entries_on_activity_id"
t.index ["created_on"], name: "index_time_entries_on_created_on"
t.index ["issue_id"], name: "time_entries_issue_id"
t.index ["project_id"], name: "time_entries_project_id"
t.index ["user_id"], name: "index_time_entries_on_user_id"
end
create_table "tokens", id: :integer, options: "ENGINE=InnoDB DEFAULT CHARSET=utf8", force: :cascade do |t|
t.integer "user_id", default: 0, null: false
t.string "action", limit: 30, default: "", null: false
t.string "value", limit: 40, default: "", null: false
t.datetime "created_on", null: false
t.index ["user_id"], name: "index_tokens_on_user_id"
t.index ["value"], name: "tokens_value", unique: true
end
create_table "trackers", id: :integer, options: "ENGINE=InnoDB DEFAULT CHARSET=utf8", force: :cascade do |t|
t.string "name", limit: 30, default: "", null: false
t.boolean "is_in_chlog", default: false, null: false
t.integer "position", default: 1
t.boolean "is_in_roadmap", default: true, null: false
t.integer "fields_bits", default: 0
end
create_table "training_payinfos", id: :integer, options: "ENGINE=InnoDB DEFAULT CHARSET=utf8", force: :cascade do |t|
t.string "invoice_title"
t.string "invoice_no"
t.string "invoice_content"
t.integer "status"
t.integer "training_id"
t.integer "pay_type"
t.string "info"
t.datetime "created_at", null: false
t.datetime "updated_at", null: false
t.string "out_trade_no"
t.integer "attachment_id"
t.integer "num", default: 1, null: false
t.integer "fee", default: 2000, null: false
t.index ["training_id"], name: "index_training_payinfos_on_training_id"
end
create_table "training_tasks", id: :integer, options: "ENGINE=InnoDB DEFAULT CHARSET=utf8", force: :cascade do |t|
t.integer "project_id"
t.integer "tracker_id"
t.string "subject"
t.text "description"
t.datetime "created_at", null: false
t.datetime "updated_at", null: false
t.integer "author_id"
t.integer "status", limit: 1, default: 0
t.integer "position", limit: 1, default: 0
t.integer "result", default: 0
end
create_table "trainings", id: :integer, options: "ENGINE=InnoDB DEFAULT CHARSET=utf8", force: :cascade do |t|
t.string "name"
t.integer "sex"
t.string "school"
t.string "position"
t.string "address"
t.string "phone"
t.string "email"
t.string "openid"
t.datetime "created_at", null: false
t.datetime "updated_at", null: false
t.integer "training_type", default: 1
t.string "major"
t.string "student_id"
t.string "research_field"
t.string "job_title"
t.string "uncertified_major"
end
create_table "trustie_hackathons", options: "ENGINE=InnoDB DEFAULT CHARSET=utf8", force: :cascade do |t|
t.string "name"
t.text "description"
t.integer "trustie_hacks_count", default: 0
t.datetime "created_at", null: false
t.datetime "updated_at", null: false
end
create_table "trustie_hacks", options: "ENGINE=InnoDB DEFAULT CHARSET=utf8", force: :cascade do |t|
t.string "name"
t.text "description"
t.bigint "user_id"
t.integer "hack_users_count", default: 0
t.datetime "created_at", null: false
t.datetime "updated_at", null: false
t.integer "trustie_hackathon_id"
t.index ["trustie_hackathon_id"], name: "index_trustie_hacks_on_trustie_hackathon_id"
t.index ["user_id"], name: "index_trustie_hacks_on_user_id"
end
create_table "upgrade_notices", options: "ENGINE=InnoDB DEFAULT CHARSET=utf8", force: :cascade do |t|
t.string "title"
t.text "content"
t.datetime "start_at"
t.datetime "end_at"
t.datetime "created_at", null: false
t.datetime "updated_at", null: false
end
create_table "user_actions", id: :integer, options: "ENGINE=InnoDB DEFAULT CHARSET=utf8", force: :cascade do |t|
t.integer "user_id"
t.string "action_type"
t.integer "action_id"
t.datetime "created_at", null: false
t.datetime "updated_at", null: false
t.string "ip"
t.index ["ip"], name: "index_user_actions_on_ip"
end
create_table "user_activities", id: :integer, options: "ENGINE=InnoDB DEFAULT CHARSET=utf8", force: :cascade do |t|
t.string "act_type"
t.integer "act_id"
t.string "container_type"
t.integer "container_id"
t.datetime "created_at", null: false
t.datetime "updated_at", null: false
t.integer "user_id"
t.index ["act_id", "act_type", "container_id", "created_at"], name: "user_act_index"
end
create_table "user_agents", id: :integer, options: "ENGINE=InnoDB DEFAULT CHARSET=utf8", force: :cascade do |t|
t.string "agent_type"
t.string "key"
t.string "ip"
t.datetime "created_at", null: false
t.datetime "updated_at", null: false
t.integer "register_status", default: 0
t.integer "action_status", default: 0
t.index ["ip"], name: "index_user_agents_on_ip", unique: true
end
create_table "user_day_certifications", id: :integer, options: "ENGINE=InnoDB DEFAULT CHARSET=utf8", force: :cascade do |t|
t.integer "user_id"
t.integer "status", default: 0
t.datetime "created_at", null: false
t.datetime "updated_at", null: false
t.index ["user_id"], name: "index_user_day_certifications_on_user_id"
end
create_table "user_extensions", id: :integer, options: "ENGINE=InnoDB DEFAULT CHARSET=utf8", force: :cascade do |t|
t.integer "user_id", null: false
t.date "birthday"
t.string "brief_introduction"
t.integer "gender"
t.string "location"
t.string "occupation"
t.integer "work_experience"
t.integer "zip_code"
t.datetime "created_at", null: false
t.datetime "updated_at", null: false
t.string "technical_title"
t.integer "identity"
t.string "student_id"
t.string "teacher_realname"
t.string "student_realname"
t.string "location_city"
t.integer "school_id"
t.string "description", default: ""
t.integer "department_id"
t.index ["department_id"], name: "index_user_extensions_on_department_id"
t.index ["school_id", "user_id"], name: "index_user_extensions_on_school_id_and_user_id"
t.index ["user_id"], name: "index_user_extensions_on_user_id"
end
create_table "user_feedback_messages", id: :integer, options: "ENGINE=InnoDB DEFAULT CHARSET=utf8", force: :cascade do |t|
t.integer "user_id"
t.integer "journals_for_message_id"
t.string "journals_for_message_type"
t.integer "viewed"
t.datetime "created_at", null: false
t.datetime "updated_at", null: false
t.index ["journals_for_message_id"], name: "index_user_feedback_messages_on_journals_for_message_id"
t.index ["user_id", "created_at"], name: "index_user_feedback_messages_on_user_id_and_created_at"
end
create_table "user_grades", id: :integer, options: "ENGINE=InnoDB DEFAULT CHARSET=utf8", force: :cascade do |t|
t.integer "user_id", null: false
t.integer "project_id", null: false
t.float "grade", default: 0.0
t.datetime "created_at", null: false
t.datetime "updated_at", null: false
t.index ["grade"], name: "index_user_grades_on_grade"
t.index ["project_id"], name: "index_user_grades_on_project_id"
t.index ["user_id"], name: "index_user_grades_on_user_id"
end
create_table "user_hidden_modules", id: :integer, options: "ENGINE=InnoDB DEFAULT CHARSET=utf8", force: :cascade do |t|
t.integer "user_id"
t.string "module_type"
t.datetime "created_at", null: false
t.datetime "updated_at", null: false
t.index ["user_id"], name: "index_user_hidden_modules_on_user_id"
end
create_table "user_interests", options: "ENGINE=InnoDB DEFAULT CHARSET=utf8", force: :cascade do |t|
t.bigint "user_id"
t.bigint "repertoire_id"
t.index ["repertoire_id"], name: "index_user_interests_on_repertoire_id"
t.index ["user_id"], name: "index_user_interests_on_user_id"
end
create_table "user_levels", id: :integer, options: "ENGINE=InnoDB DEFAULT CHARSET=latin1", force: :cascade do |t|
t.integer "user_id"
t.integer "level"
end
create_table "user_preferences", id: :integer, options: "ENGINE=InnoDB DEFAULT CHARSET=utf8", force: :cascade do |t|
t.integer "user_id", default: 0, null: false
t.text "others"
t.boolean "hide_mail", default: false
t.string "time_zone"
t.index ["user_id"], name: "index_user_preferences_on_user_id"
end
create_table "user_score_details", id: :integer, options: "ENGINE=InnoDB DEFAULT CHARSET=utf8", force: :cascade do |t|
t.integer "current_user_id"
t.integer "target_user_id"
t.string "score_type"
t.string "score_action"
t.integer "user_id"
t.integer "old_score"
t.integer "new_score"
t.integer "current_user_level"
t.integer "target_user_level"
t.integer "score_changeable_obj_id"
t.string "score_changeable_obj_type"
t.datetime "created_at", null: false
t.datetime "updated_at", null: false
end
create_table "user_scores", id: :integer, options: "ENGINE=InnoDB DEFAULT CHARSET=utf8", force: :cascade do |t|
t.integer "user_id", null: false
t.integer "collaboration"
t.integer "influence"
t.integer "skill"
t.integer "active"
t.datetime "created_at", null: false
t.datetime "updated_at", null: false
end
create_table "user_searches", id: :integer, options: "ENGINE=InnoDB DEFAULT CHARSET=utf8", force: :cascade do |t|
t.integer "user_id"
t.integer "search_type"
t.string "subject"
t.datetime "created_at", null: false
t.datetime "updated_at", null: false
t.index ["user_id"], name: "index_user_searches_on_user_id"
end
create_table "user_sources", id: :integer, options: "ENGINE=InnoDB DEFAULT CHARSET=utf8", force: :cascade do |t|
t.string "type"
t.integer "user_id"
t.string "uuid"
t.string "name"
t.datetime "created_at", null: false
t.datetime "updated_at", null: false
t.index ["type", "uuid"], name: "index_user_sources_on_type_and_uuid", unique: true
t.index ["user_id"], name: "index_user_sources_on_user_id"
end
create_table "user_statuses", id: :integer, options: "ENGINE=InnoDB DEFAULT CHARSET=utf8", force: :cascade do |t|
t.integer "changesets_count"
t.integer "watchers_count"
t.integer "user_id"
t.datetime "created_at", null: false
t.datetime "updated_at", null: false
t.float "grade", default: 0.0
t.index ["changesets_count"], name: "index_user_statuses_on_changesets_count"
t.index ["grade"], name: "index_user_statuses_on_grade"
t.index ["watchers_count"], name: "index_user_statuses_on_watchers_count"
end
create_table "user_system_notices", id: :integer, options: "ENGINE=InnoDB DEFAULT CHARSET=utf8", force: :cascade do |t|
t.integer "user_id"
t.integer "notice_type"
t.datetime "created_at", null: false
t.datetime "updated_at", null: false
t.index ["user_id"], name: "index_user_system_notices_on_user_id"
end
create_table "user_wechats", id: :integer, options: "ENGINE=InnoDB DEFAULT CHARSET=utf8", force: :cascade do |t|
t.integer "subscribe"
t.string "openid"
t.string "nickname"
t.integer "sex"
t.string "language"
t.string "city"
t.string "province"
t.string "country"
t.string "headimgurl"
t.string "subscribe_time"
t.string "unionid"
t.string "remark"
t.integer "groupid"
t.integer "user_id"
t.datetime "created_at", null: false
t.datetime "updated_at", null: false
t.integer "bindtype", default: 0
end
create_table "users", id: :integer, options: "ENGINE=InnoDB DEFAULT CHARSET=utf8", force: :cascade do |t|
t.string "login", default: "", null: false
t.string "hashed_password", limit: 40, default: "", null: false
t.string "firstname", limit: 30, default: "", null: false
t.string "lastname", default: "", null: false
t.string "mail", limit: 60
t.boolean "admin", default: false, null: false
t.integer "status", default: 1, null: false
t.datetime "last_login_on"
t.string "language", limit: 5, default: ""
t.integer "auth_source_id"
t.datetime "created_on"
t.datetime "updated_on"
t.string "type"
t.string "identity_url"
t.string "mail_notification", default: "", null: false
t.string "salt", limit: 64
t.integer "gid"
t.integer "visits", default: 0
t.integer "excellent_teacher", default: 0
t.integer "excellent_student", default: 0
t.string "phone"
t.boolean "authentication", default: false
t.integer "grade", default: 0
t.integer "experience", default: 0
t.string "nickname"
t.boolean "show_realname", default: true
t.boolean "professional_certification", default: false
t.string "ID_number"
t.integer "certification", default: 0
t.boolean "homepage_teacher", default: false
t.boolean "homepage_engineer", default: false
t.integer "is_test", limit: 1, default: 0
t.integer "ecoder_user_id", default: 0
t.boolean "business", default: false
t.boolean "profile_completed", default: false
t.bigint "laboratory_id"
t.boolean "is_shixun_marker", default: false
t.boolean "admin_visitable", default: false
t.index ["ecoder_user_id"], name: "index_users_on_ecoder_user_id"
t.index ["homepage_engineer"], name: "index_users_on_homepage_engineer"
t.index ["homepage_teacher"], name: "index_users_on_homepage_teacher"
t.index ["laboratory_id"], name: "index_users_on_laboratory_id"
t.index ["login"], name: "index_users_on_login", unique: true
t.index ["mail"], name: "index_users_on_mail", unique: true
t.index ["phone"], name: "index_users_on_phone", unique: true
end
create_table "users_authentications", id: :integer, options: "ENGINE=InnoDB DEFAULT CHARSET=utf8", force: :cascade do |t|
t.integer "user_id"
t.integer "authentication_id"
end
create_table "verification_codes", id: :integer, options: "ENGINE=InnoDB DEFAULT CHARSET=utf8", force: :cascade do |t|
t.string "code"
t.integer "code_type"
t.integer "status"
t.string "phone"
t.string "email"
t.datetime "created_at", null: false
t.datetime "updated_at", null: false
t.index ["email"], name: "by_email"
t.index ["phone"], name: "by_phone"
end
create_table "versions", id: :integer, options: "ENGINE=InnoDB DEFAULT CHARSET=utf8", force: :cascade do |t|
t.integer "project_id", default: 0, null: false
t.string "name", default: "", null: false
t.string "description", default: ""
t.date "effective_date"
t.datetime "created_on"
t.datetime "updated_on"
t.string "wiki_page_title"
t.string "status", default: "open"
t.string "sharing", default: "none", null: false
t.integer "user_id"
t.index ["project_id"], name: "versions_project_id"
t.index ["sharing"], name: "index_versions_on_sharing"
end
create_table "video_applies", options: "ENGINE=InnoDB DEFAULT CHARSET=utf8", force: :cascade do |t|
t.integer "video_id"
t.string "status"
t.string "reason"
t.datetime "created_at", null: false
t.datetime "updated_at", null: false
t.index ["video_id"], name: "index_video_applies_on_video_id"
end
create_table "videos", options: "ENGINE=InnoDB DEFAULT CHARSET=utf8", force: :cascade do |t|
t.integer "user_id"
t.string "title"
t.string "uuid", comment: "Aliyun媒体ID"
t.string "cover_url", comment: "视频封面"
t.string "file_url", comment: "视频地址"
t.string "status"
t.string "vod_status", comment: "Aliyun媒体状态"
t.datetime "published_at"
t.datetime "created_at", null: false
t.datetime "updated_at", null: false
t.integer "filesize", default: 0
t.integer "vv", default: 0
t.integer "play_duration", default: 0
t.string "play_url"
t.boolean "transcoded", default: false
t.integer "delete_state"
t.float "duration", default: 0.0
t.index ["delete_state"], name: "index_videos_on_delete_state"
t.index ["published_at"], name: "index_videos_on_published_at"
t.index ["user_id"], name: "index_videos_on_user_id"
t.index ["uuid"], name: "index_videos_on_uuid", unique: true
end
create_table "visitors", id: :integer, options: "ENGINE=InnoDB DEFAULT CHARSET=utf8", force: :cascade do |t|
t.integer "user_id"
t.integer "master_id"
t.datetime "updated_on"
t.datetime "created_on"
t.index ["master_id"], name: "index_visitors_master_id"
t.index ["updated_on"], name: "index_visitors_updated_on"
t.index ["user_id"], name: "index_visitors_user_id"
end
create_table "watch_course_video_details", options: "ENGINE=InnoDB DEFAULT CHARSET=utf8", force: :cascade do |t|
t.bigint "user_id"
t.text "times"
t.bigint "watch_course_video_id"
t.datetime "created_at", null: false
t.datetime "updated_at", null: false
t.index ["user_id"], name: "index_watch_course_video_details_on_user_id"
t.index ["watch_course_video_id"], name: "index_watch_course_video_details_on_watch_course_video_id"
end
create_table "watch_course_videos", options: "ENGINE=InnoDB DEFAULT CHARSET=utf8", force: :cascade do |t|
t.bigint "course_video_id"
t.bigint "user_id"
t.boolean "is_finished", default: false
t.float "duration", default: 0.0
t.float "watch_duration", default: 0.0
t.datetime "start_at"
t.datetime "end_at"
t.datetime "created_at", null: false
t.datetime "updated_at", null: false
t.float "total_duration", default: 0.0
t.integer "last_point", default: 0
t.index ["course_video_id"], name: "index_watch_course_videos_on_course_video_id"
t.index ["user_id"], name: "index_watch_course_videos_on_user_id"
end
create_table "watch_video_histories", options: "ENGINE=InnoDB DEFAULT CHARSET=utf8", force: :cascade do |t|
t.bigint "watch_course_video_id"
t.bigint "user_id"
t.bigint "video_id"
t.boolean "is_finished", default: false
t.float "duration", default: 0.0
t.float "watch_duration", default: 0.0
t.datetime "start_at"
t.datetime "end_at"
t.string "device"
t.string "ip"
t.datetime "created_at", null: false
t.datetime "updated_at", null: false
t.float "total_duration", default: 0.0
t.integer "last_point", default: 0
t.index ["user_id"], name: "index_watch_video_histories_on_user_id"
t.index ["video_id"], name: "index_watch_video_histories_on_video_id"
t.index ["watch_course_video_id"], name: "index_watch_video_histories_on_watch_course_video_id"
end
create_table "watchers", id: :integer, options: "ENGINE=InnoDB DEFAULT CHARSET=utf8", force: :cascade do |t|
t.string "watchable_type", default: "", null: false
t.integer "watchable_id", default: 0, null: false
t.integer "user_id"
t.index ["user_id", "watchable_type"], name: "watchers_user_id_type"
t.index ["user_id"], name: "index_watchers_on_user_id"
t.index ["watchable_id", "watchable_type"], name: "index_watchers_on_watchable_id_and_watchable_type"
end
create_table "weapp_settings", options: "ENGINE=InnoDB DEFAULT CHARSET=utf8", force: :cascade do |t|
t.string "type"
t.string "link"
t.boolean "online", default: false
t.integer "position", default: 0
t.datetime "created_at", null: false
t.datetime "updated_at", null: false
end
create_table "web_footer_companies", id: :integer, options: "ENGINE=InnoDB DEFAULT CHARSET=utf8", force: :cascade do |t|
t.string "name"
t.string "logo_size"
t.string "url"
t.datetime "created_at", null: false
t.datetime "updated_at", null: false
end
create_table "web_footer_oranizers", id: :integer, options: "ENGINE=InnoDB DEFAULT CHARSET=utf8", force: :cascade do |t|
t.string "name"
t.text "description"
t.datetime "created_at", null: false
t.datetime "updated_at", null: false
end
create_table "websshes", id: :integer, options: "ENGINE=InnoDB DEFAULT CHARSET=utf8", force: :cascade do |t|
t.integer "myshixun_id"
t.string "host"
t.integer "port"
t.datetime "created_at", null: false
t.datetime "updated_at", null: false
end
create_table "wechat_logs", id: :integer, options: "ENGINE=InnoDB DEFAULT CHARSET=utf8", force: :cascade do |t|
t.string "openid", null: false
t.text "request_raw"
t.text "response_raw"
t.text "session_raw"
t.datetime "created_at", null: false
t.index ["openid"], name: "index_wechat_logs_on_openid"
end
create_table "wechat_pays", id: :integer, options: "ENGINE=InnoDB DEFAULT CHARSET=utf8", force: :cascade do |t|
t.integer "training_id"
t.string "appid"
t.string "bank_type"
t.string "cash_fee"
t.string "fee_type"
t.string "is_subscribe"
t.string "mch_id"
t.string "nonce_str"
t.string "openid"
t.string "out_trade_no"
t.string "result_code"
t.string "return_code"
t.string "time_end"
t.string "total_fee"
t.string "transaction_id"
t.datetime "created_at", null: false
t.datetime "updated_at", null: false
t.index ["training_id"], name: "index_wechat_pays_on_training_id"
t.index ["transaction_id"], name: "index_wechat_pays_on_transaction_id", unique: true
end
create_table "wiki_content_versions", id: :integer, options: "ENGINE=InnoDB DEFAULT CHARSET=utf8", force: :cascade do |t|
t.integer "wiki_content_id", null: false
t.integer "page_id", null: false
t.integer "author_id"
t.binary "data", limit: 4294967295
t.string "compression", limit: 6, default: ""
t.string "comments", default: ""
t.datetime "updated_on", null: false
t.integer "version", null: false
t.index ["updated_on"], name: "index_wiki_content_versions_on_updated_on"
t.index ["wiki_content_id"], name: "wiki_content_versions_wcid"
end
create_table "wiki_contents", id: :integer, options: "ENGINE=InnoDB DEFAULT CHARSET=utf8", force: :cascade do |t|
t.integer "page_id", null: false
t.integer "author_id"
t.text "text", limit: 4294967295
t.string "comments", default: ""
t.datetime "updated_on", null: false
t.integer "version", null: false
t.index ["author_id"], name: "index_wiki_contents_on_author_id"
t.index ["page_id"], name: "wiki_contents_page_id"
end
create_table "wiki_pages", id: :integer, options: "ENGINE=InnoDB DEFAULT CHARSET=utf8", force: :cascade do |t|
t.integer "wiki_id", null: false
t.string "title", null: false
t.datetime "created_on", null: false
t.boolean "protected", default: false, null: false
t.integer "parent_id"
t.index ["parent_id"], name: "index_wiki_pages_on_parent_id"
t.index ["wiki_id", "title"], name: "wiki_pages_wiki_id_title"
t.index ["wiki_id"], name: "index_wiki_pages_on_wiki_id"
end
create_table "wiki_redirects", id: :integer, options: "ENGINE=InnoDB DEFAULT CHARSET=utf8", force: :cascade do |t|
t.integer "wiki_id", null: false
t.string "title"
t.string "redirects_to"
t.datetime "created_on", null: false
t.index ["wiki_id", "title"], name: "wiki_redirects_wiki_id_title"
t.index ["wiki_id"], name: "index_wiki_redirects_on_wiki_id"
end
create_table "wikis", id: :integer, options: "ENGINE=InnoDB DEFAULT CHARSET=utf8", force: :cascade do |t|
t.integer "project_id", null: false
t.string "start_page", null: false
t.integer "status", default: 1, null: false
t.index ["project_id"], name: "wikis_project_id"
end
create_table "work_detail_groups", id: :integer, options: "ENGINE=InnoDB DEFAULT CHARSET=utf8", force: :cascade do |t|
t.integer "work_id"
t.integer "min_num"
t.integer "max_num"
t.boolean "base_on_project"
t.datetime "created_at", null: false
t.datetime "updated_at", null: false
t.index ["work_id"], name: "index_work_detail_groups_on_work_id"
end
create_table "work_detail_manuals", id: :integer, options: "ENGINE=InnoDB DEFAULT CHARSET=utf8", force: :cascade do |t|
t.date "evaluation_start"
t.date "evaluation_end"
t.integer "evaluation_num"
t.integer "work_id"
t.datetime "created_at", null: false
t.datetime "updated_at", null: false
t.index ["work_id"], name: "index_work_detail_manuals_on_work_id"
end
create_table "workflows", id: :integer, options: "ENGINE=InnoDB DEFAULT CHARSET=utf8", force: :cascade do |t|
t.integer "tracker_id", default: 0, null: false
t.integer "old_status_id", default: 0, null: false
t.integer "new_status_id", default: 0, null: false
t.integer "role_id", default: 0, null: false
t.boolean "assignee", default: false, null: false
t.boolean "author", default: false, null: false
t.string "type", limit: 30
t.string "field_name", limit: 30
t.string "rule", limit: 30
t.index ["new_status_id"], name: "index_workflows_on_new_status_id"
t.index ["old_status_id"], name: "index_workflows_on_old_status_id"
t.index ["role_id", "tracker_id", "old_status_id"], name: "wkfs_role_tracker_old_status"
t.index ["role_id"], name: "index_workflows_on_role_id"
end
create_table "works", id: :integer, options: "ENGINE=InnoDB DEFAULT CHARSET=utf8", force: :cascade do |t|
t.string "name"
t.integer "user_id"
t.text "description"
t.date "publish_time"
t.date "end_time"
t.integer "work_type"
t.integer "contest_id"
t.boolean "is_delete", default: false
t.boolean "score_open", default: false
t.boolean "is_open", default: false
t.integer "work_status"
t.datetime "created_at", null: false
t.datetime "updated_at", null: false
t.boolean "online_evaluation", default: false
t.boolean "score_valid", default: true
t.index ["contest_id"], name: "index_works_on_contest_id"
t.index ["user_id"], name: "index_works_on_user_id"
end
create_table "works_categories", id: :integer, options: "ENGINE=InnoDB DEFAULT CHARSET=utf8", force: :cascade do |t|
t.string "category"
t.datetime "created_at", null: false
t.datetime "updated_at", null: false
end
create_table "zip_packs", id: :integer, options: "ENGINE=InnoDB DEFAULT CHARSET=utf8", force: :cascade do |t|
t.integer "user_id"
t.integer "homework_id"
t.string "file_digest"
t.string "file_path"
t.integer "pack_times", default: 1
t.float "pack_size", default: 0.0
t.text "file_digests"
t.datetime "created_at", null: false
t.datetime "updated_at", null: false
t.integer "container_id", default: 0
t.string "container_type"
t.index ["container_id", "container_type"], name: "index_zip_packs_on_container_id_and_container_type"
end
add_foreign_key "knowledge_point_containers", "knowledge_points"
add_foreign_key "knowledge_points", "curriculums"
end