<?xml version="1.0" encoding="UTF-8"?>
<database defaultPhpNamingMethod="underscore" heavyIndexing="false" name="openschool" defaultIdMethod="native"><table skipSql="false" abstract="false" name="schools" description="School Table"><column lazyLoad="false" name="id" type="integer" primaryKey="true" autoIncrement="true" required="true" description="School id"/><column primaryKey="false" required="false" autoIncrement="false" lazyLoad="false" name="name" type="varchar" size="128" description="The school name"/></table><table skipSql="false" abstract="false" name="school_info" description="Advanced information about school"><column required="false" autoIncrement="false" lazyLoad="false" name="id" type="integer" primaryKey="true" description="School info id"/><column primaryKey="false" required="false" autoIncrement="false" lazyLoad="false" name="zip_code" type="varchar" size="6" description="Post code"/><column primaryKey="false" required="false" autoIncrement="false" lazyLoad="false" name="region" type="varchar" size="128" description="School region"/><column primaryKey="false" required="false" autoIncrement="false" lazyLoad="false" name="city" type="varchar" size="128" description="School city"/><column primaryKey="false" required="false" autoIncrement="false" lazyLoad="false" name="address" type="varchar" size="255" description="School address"/><column primaryKey="false" required="false" autoIncrement="false" lazyLoad="false" name="phones" type="varchar" size="255"/><column primaryKey="false" required="false" autoIncrement="false" lazyLoad="false" name="fax" type="varchar" size="255"/><column primaryKey="false" required="false" autoIncrement="false" lazyLoad="false" name="email" type="varchar" size="255"/><column primaryKey="false" required="false" autoIncrement="false" lazyLoad="false" name="OKPO_code" type="varchar" size="32"/><column primaryKey="false" required="false" autoIncrement="false" lazyLoad="false" name="OKATO_code" type="varchar" size="32"/><column primaryKey="false" required="false" autoIncrement="false" lazyLoad="false" name="OKOGU_code" type="varchar" size="32"/><column primaryKey="false" required="false" autoIncrement="false" lazyLoad="false" name="head_id" type="integer" description="Fkey to school head"/><foreign-key onUpdate="none" foreignTable="users" onDelete="cascade"><reference local="head_id" foreign="id"/></foreign-key><foreign-key onUpdate="none" foreignTable="schools" onDelete="cascade"><reference local="id" foreign="id"/></foreign-key></table><table skipSql="false" abstract="false" name="users" description="User base table"><column lazyLoad="false" name="id" type="integer" primaryKey="true" autoIncrement="true" required="true" description="User id"/><column primaryKey="false" required="false" autoIncrement="false" lazyLoad="false" name="display_name" type="varchar" size="255"/><column primaryKey="false" required="false" autoIncrement="false" lazyLoad="false" name="login" type="varchar" size="40" description="User login"/><column primaryKey="false" required="false" autoIncrement="false" lazyLoad="false" name="password_hash" type="varchar" size="40" description="User password hash"/><column primaryKey="false" required="false" autoIncrement="false" lazyLoad="false" name="school_id" type="integer" description="Fkey to school"/><column primaryKey="false" required="false" autoIncrement="false" lazyLoad="false" name="user_role_key" type="INTEGER" inheritance="single"><inheritance key="1" class="Teachers" extends="openschool.Users"/><inheritance key="2" class="Students" extends="openschool.Users"/><inheritance key="3" class="Parents" extends="openschool.Users"/></column><foreign-key onUpdate="none" foreignTable="schools" onDelete="cascade"><reference local="school_id" foreign="id"/></foreign-key></table><table skipSql="false" abstract="false" name="user_metadata" description="Common user information"><column lazyLoad="false" name="id" type="integer" primaryKey="true" autoIncrement="true" required="true" description="User id"/><column primaryKey="false" autoIncrement="false" lazyLoad="false" name="first_name" type="varchar" size="64" required="true" description="First name"/><column primaryKey="false" autoIncrement="false" lazyLoad="false" name="middle_name" type="varchar" size="64" required="true" description="Middle name"/><column primaryKey="false" autoIncrement="false" lazyLoad="false" name="last_name" type="varchar" size="64" required="true" description="Last name"/><column primaryKey="false" autoIncrement="false" lazyLoad="false" name="gender" type="varchar" size="1" required="true" description="enum('male', 'female')"/><column primaryKey="false" required="false" autoIncrement="false" lazyLoad="false" name="date_of_birth" type="date" description="user's date of birth"/><column primaryKey="false" required="false" autoIncrement="false" lazyLoad="false" name="zip_code" type="varchar" size="6" description="Post code"/><column primaryKey="false" required="false" autoIncrement="false" lazyLoad="false" name="address" type="varchar" size="255"/><column primaryKey="false" required="false" autoIncrement="false" lazyLoad="false" name="phones" type="varchar" size="255"/><column primaryKey="false" required="false" autoIncrement="false" lazyLoad="false" name="email" type="varchar" size="255"/><column primaryKey="false" required="false" autoIncrement="false" lazyLoad="false" name="passport_number" type="char" size="6"/><column primaryKey="false" required="false" autoIncrement="false" lazyLoad="false" name="passport_serial_number" type="char" size="4"/><column primaryKey="false" required="false" autoIncrement="false" lazyLoad="false" name="passport_emited_by" type="varchar" size="64"/><column primaryKey="false" required="false" autoIncrement="false" lazyLoad="false" name="passport_emited_on" type="date" sqlType="year"/><foreign-key onUpdate="none" foreignTable="users" onDelete="cascade"><reference local="id" foreign="id"/></foreign-key></table><table skipSql="false" abstract="false" name="parents" description="Parents table extends users" phpName="inheritance_parents"><column required="false" autoIncrement="false" lazyLoad="false" name="id" type="integer" primaryKey="true" description="Parent id"/><column primaryKey="false" required="false" autoIncrement="false" lazyLoad="false" name="place_of_employment" type="varchar" size="255"/><column primaryKey="false" required="false" autoIncrement="false" lazyLoad="false" name="post" type="varchar" size="64"/><column primaryKey="false" required="false" autoIncrement="false" lazyLoad="false" name="office_phone" type="varchar" size="64"/><foreign-key onUpdate="none" foreignTable="users" onDelete="cascade"><reference local="id" foreign="id"/></foreign-key></table><table skipSql="false" abstract="false" name="students" description="Students table extends users" phpName="inheritance_students"><column required="false" autoIncrement="false" lazyLoad="false" name="id" type="integer" primaryKey="true" description="Student id"/><column primaryKey="false" required="false" autoIncrement="false" lazyLoad="false" name="birth_certificate" type="varchar" size="32"/><column primaryKey="false" required="false" autoIncrement="false" lazyLoad="false" name="foreign_language_id" type="integer"/><column primaryKey="false" required="false" autoIncrement="false" lazyLoad="false" name="case_number" type="integer"/><foreign-key onUpdate="none" foreignTable="users" onDelete="cascade"><reference local="id" foreign="id"/></foreign-key><foreign-key onUpdate="none" foreignTable="foreign_languages" onDelete="cascade"><reference local="foreign_language_id" foreign="id"/></foreign-key></table><table skipSql="false" abstract="false" name="foreign_languages"><column required="false" autoIncrement="false" lazyLoad="false" name="id" type="integer" primaryKey="true" description="Language id"/><column primaryKey="false" required="false" autoIncrement="false" lazyLoad="false" name="language" type="varchar" size="32"/></table><table skipSql="false" abstract="false" name="parents_students"><column autoIncrement="false" lazyLoad="false" name="parent_id" type="integer" required="true" primaryKey="true"/><column autoIncrement="false" lazyLoad="false" name="student_id" type="integer" required="true" primaryKey="true"/><foreign-key onDelete="none" onUpdate="none" foreignTable="parents"><reference local="parent_id" foreign="id"/></foreign-key><foreign-key onDelete="none" onUpdate="none" foreignTable="students"><reference local="student_id" foreign="id"/></foreign-key></table><table skipSql="false" abstract="false" name="teachers" description="Teacher table extends users" phpName="inheritance_teacher"><column required="false" autoIncrement="false" lazyLoad="false" name="id" type="integer" primaryKey="true" description="Teacher id"/><column primaryKey="false" autoIncrement="false" lazyLoad="false" name="number" type="integer" required="true"/><column primaryKey="false" required="false" autoIncrement="false" lazyLoad="false" name="awards" type="longvarchar"/><foreign-key onUpdate="none" foreignTable="users" onDelete="cascade"><reference local="id" foreign="id"/></foreign-key></table><table skipSql="false" abstract="false" name="posts_teachers"><column autoIncrement="false" lazyLoad="false" name="teacher_id" type="INTEGER" required="true" primaryKey="true"/><column autoIncrement="false" lazyLoad="false" name="post_id" type="INTEGER" required="true" primaryKey="true"/><column primaryKey="false" required="false" autoIncrement="false" lazyLoad="false" name="qualifying_category_id" type="integer"/><column primaryKey="false" required="false" autoIncrement="false" lazyLoad="false" name="qualifying_date" type="date"/><column primaryKey="false" required="false" autoIncrement="false" lazyLoad="false" name="qualifying_expiration_date" type="date"/><foreign-key onDelete="none" onUpdate="none" foreignTable="teachers"><reference local="teacher_id" foreign="id"/></foreign-key><foreign-key onDelete="none" onUpdate="none" foreignTable="posts"><reference local="post_id" foreign="id"/></foreign-key><foreign-key onDelete="none" onUpdate="none" foreignTable="qualifying_categories"><reference local="qualifying_category_id" foreign="id"/></foreign-key></table><table skipSql="false" abstract="false" name="posts"><column required="false" autoIncrement="false" lazyLoad="false" name="id" type="integer" primaryKey="true" description="Post id"/><column primaryKey="false" required="false" autoIncrement="false" lazyLoad="false" name="post" type="varchar" size="255"/></table><table skipSql="false" abstract="false" name="qualifying_categories" description="Categories"><column lazyLoad="false" name="id" type="integer" primaryKey="true" autoIncrement="true" required="true" description="Category id"/><column primaryKey="false" required="false" autoIncrement="false" lazyLoad="false" name="category" type="varchar" size="64" description="Category name"/></table><table skipSql="false" abstract="false" name="educations" description="Teacher educations"><column lazyLoad="false" name="id" type="integer" primaryKey="true" autoIncrement="true" required="true" description="Education id"/><column primaryKey="false" required="false" autoIncrement="false" lazyLoad="false" name="institute" type="varchar" size="255" description="Institute name"/><column primaryKey="false" required="false" autoIncrement="false" lazyLoad="false" name="education_date" type="date"/><column primaryKey="false" required="false" autoIncrement="false" lazyLoad="false" name="speciality" type="varchar" size="255" description="Speciality by diploma"/><column primaryKey="false" required="false" autoIncrement="false" lazyLoad="false" name="qualification" type="varchar" size="255" description="Qualification by diploma"/><column primaryKey="false" required="false" autoIncrement="false" lazyLoad="false" name="education_type_id" type="integer" description="Type of education (high, secondary, school, special)"/><column primaryKey="false" required="false" autoIncrement="false" lazyLoad="false" name="diploma_number" type="varchar" size="32"/><foreign-key onUpdate="none" foreignTable="education_types" onDelete="cascade"><reference local="education_type_id" foreign="id"/></foreign-key></table><table skipSql="false" abstract="false" name="education_types" description="Education types"><column lazyLoad="false" name="id" type="integer" primaryKey="true" autoIncrement="true" required="true" description="Education type id"/><column primaryKey="false" required="false" autoIncrement="false" lazyLoad="false" name="education_type" type="varchar" size="64" description="Education type"/></table><table skipSql="false" abstract="false" name="educations_teachers"><column autoIncrement="false" lazyLoad="false" name="education_id" type="integer" required="true" primaryKey="true"/><column autoIncrement="false" lazyLoad="false" name="teacher_id" type="integer" required="true" primaryKey="true"/><foreign-key onDelete="none" onUpdate="none" foreignTable="educations"><reference local="education_id" foreign="id"/></foreign-key><foreign-key onDelete="none" onUpdate="none" foreignTable="teachers"><reference local="teacher_id" foreign="id"/></foreign-key></table><table skipSql="false" abstract="false" name="extension_courses" description="Teacher courses graded"><column lazyLoad="false" name="id" type="integer" primaryKey="true" autoIncrement="true" required="true" description="Course id"/><column primaryKey="false" required="false" autoIncrement="false" lazyLoad="false" name="name" type="varchar" size="255" description="Education type"/><column primaryKey="false" required="false" autoIncrement="false" lazyLoad="false" name="institute" type="varchar" size="255" description="Where was graded"/><column primaryKey="false" required="false" autoIncrement="false" lazyLoad="false" name="course_year" type="date" sqlType="year"/><column primaryKey="false" required="false" autoIncrement="false" lazyLoad="false" name="hours" type="integer" description="Course hours count"/></table><table skipSql="false" abstract="false" name="extension_courses_teachers"><column autoIncrement="false" lazyLoad="false" name="course_id" type="integer" required="true" primaryKey="true"/><column autoIncrement="false" lazyLoad="false" name="teacher_id" type="integer" required="true" primaryKey="true"/><foreign-key onDelete="none" onUpdate="none" foreignTable="extension_courses"><reference local="course_id" foreign="id"/></foreign-key><foreign-key onDelete="none" onUpdate="none" foreignTable="teachers"><reference local="teacher_id" foreign="id"/></foreign-key></table><table skipSql="false" abstract="false" name="education_programs" description="Primary, secondary, high school"><column lazyLoad="false" name="id" type="integer" primaryKey="true" autoIncrement="true" required="true" description="Education program id"/><column primaryKey="false" required="false" autoIncrement="false" lazyLoad="false" name="name" type="varchar" size="64" description="Education program name"/><column primaryKey="false" required="false" autoIncrement="false" lazyLoad="false" name="school_id" type="integer" description="Fkey to school"/><foreign-key onUpdate="none" foreignTable="schools" onDelete="cascade"><reference local="school_id" foreign="id"/></foreign-key></table><table skipSql="false" abstract="false" name="classes" description="Classes"><column lazyLoad="false" name="id" type="integer" primaryKey="true" autoIncrement="true" required="true" description="Class id"/><column primaryKey="false" required="false" autoIncrement="false" lazyLoad="false" name="name" type="varchar" size="64" description="Class name, e.g. 1A, 1B, 1C, ..., 11A, 11B, 11C"/><column primaryKey="false" required="false" autoIncrement="false" lazyLoad="false" name="form_master_id" type="integer"/><column primaryKey="false" required="false" autoIncrement="false" lazyLoad="false" name="education_program_id" type="integer"/><foreign-key onUpdate="none" foreignTable="teachers" onDelete="setnull"><reference local="form_master_id" foreign="id"/></foreign-key><foreign-key onUpdate="none" foreignTable="education_programs" onDelete="cascade"><reference local="education_program_id" foreign="id"/></foreign-key></table><table skipSql="false" abstract="false" name="classes_students"><column autoIncrement="false" lazyLoad="false" name="class_id" type="integer" required="true" primaryKey="true"/><column autoIncrement="false" lazyLoad="false" name="student_id" type="integer" required="true" primaryKey="true"/><foreign-key onDelete="none" onUpdate="none" foreignTable="classes"><reference local="class_id" foreign="id"/></foreign-key><foreign-key onDelete="none" onUpdate="none" foreignTable="students"><reference local="student_id" foreign="id"/></foreign-key></table><table skipSql="false" abstract="false" name="courses" description="courses"><column lazyLoad="false" name="id" type="integer" primaryKey="true" autoIncrement="true" required="true" description="Course id"/><column primaryKey="false" required="false" autoIncrement="false" lazyLoad="false" name="name" type="varchar" size="64" description="Course name, e.g. physics, mathematics, history..."/><column primaryKey="false" required="false" autoIncrement="false" lazyLoad="false" name="short_name" type="varchar" size="16" description="Course name, e.g. ph, math, hist..."/><column primaryKey="false" required="false" autoIncrement="false" lazyLoad="false" name="num_of_lessons_per_week" type="float"/><column primaryKey="false" required="false" autoIncrement="false" lazyLoad="false" name="teacher_id" type="integer"/><column primaryKey="false" required="false" autoIncrement="false" lazyLoad="false" name="class_id" type="integer"/><foreign-key onUpdate="none" foreignTable="teachers" onDelete="setnull"><reference local="teacher_id" foreign="id"/></foreign-key><foreign-key onUpdate="none" foreignTable="classes" onDelete="cascade"><reference local="class_id" foreign="id"/></foreign-key></table><table skipSql="false" abstract="false" name="courses_students"><column autoIncrement="false" lazyLoad="false" name="course_id" type="integer" required="true" primaryKey="true"/><column autoIncrement="false" lazyLoad="false" name="student_id" type="integer" required="true" primaryKey="true"/><foreign-key onDelete="none" onUpdate="none" foreignTable="courses"><reference local="course_id" foreign="id"/></foreign-key><foreign-key onDelete="none" onUpdate="none" foreignTable="students"><reference local="student_id" foreign="id"/></foreign-key></table><table skipSql="false" abstract="false" name="courses_rooms"><column autoIncrement="false" lazyLoad="false" name="course_id" type="integer" required="true" primaryKey="true"/><column autoIncrement="false" lazyLoad="false" name="room_id" type="integer" required="true" primaryKey="true"/><foreign-key onDelete="none" onUpdate="none" foreignTable="courses"><reference local="course_id" foreign="id"/></foreign-key><foreign-key onDelete="none" onUpdate="none" foreignTable="rooms"><reference local="room_id" foreign="id"/></foreign-key></table><table skipSql="false" abstract="false" name="rooms" description="Rooms at school"><column lazyLoad="false" name="id" type="integer" primaryKey="true" autoIncrement="true" required="true" description="Room id"/><column primaryKey="false" required="false" autoIncrement="false" lazyLoad="false" name="name" type="varchar" size="64"/><column primaryKey="false" required="false" autoIncrement="false" lazyLoad="false" name="capacity" type="integer"/><column primaryKey="false" required="false" autoIncrement="false" lazyLoad="false" name="school_id" type="integer" description="Fkey to school"/><foreign-key onUpdate="none" foreignTable="schools" onDelete="cascade"><reference local="school_id" foreign="id"/></foreign-key></table><table skipSql="false" abstract="false" name="days" description="Days of week"><column lazyLoad="false" name="id" type="integer" primaryKey="true" autoIncrement="true" required="true" description="Day id"/><column primaryKey="false" required="false" autoIncrement="false" lazyLoad="false" name="name" type="varchar" size="16" description="e.g. Monday, tuesday, wednesday, thursday, friday"/><column primaryKey="false" required="false" autoIncrement="false" lazyLoad="false" name="school_id" type="integer" description="Fkey to school"/><foreign-key onUpdate="none" foreignTable="schools" onDelete="cascade"><reference local="school_id" foreign="id"/></foreign-key></table><table skipSql="false" abstract="false" name="terms" description="Lesson times"><column lazyLoad="false" name="id" type="integer" primaryKey="true" autoIncrement="true" required="true" description="Term id"/><column primaryKey="false" required="false" autoIncrement="false" lazyLoad="false" name="from" type="time" description="e.g. 08:00"/><column primaryKey="false" required="false" autoIncrement="false" lazyLoad="false" name="to" type="time" description="e.g. 08:40"/><column primaryKey="false" required="false" autoIncrement="false" lazyLoad="false" name="school_id" type="integer" description="Fkey to school"/><foreign-key onUpdate="none" foreignTable="schools" onDelete="cascade"><reference local="school_id" foreign="id"/></foreign-key></table><table skipSql="false" abstract="false" name="timetable"><column lazyLoad="false" name="id" type="integer" primaryKey="true" autoIncrement="true" required="true" description="Timetable item id"/><column primaryKey="false" autoIncrement="false" lazyLoad="false" name="course_id" type="integer" required="true"/><column primaryKey="false" autoIncrement="false" lazyLoad="false" name="day_id" type="integer" required="true"/><column primaryKey="false" autoIncrement="false" lazyLoad="false" name="term_id" type="integer" required="true"/><column primaryKey="false" autoIncrement="false" lazyLoad="false" name="room_id" type="integer" required="true"/><foreign-key onUpdate="none" foreignTable="courses" onDelete="cascade"><reference local="course_id" foreign="id"/></foreign-key><foreign-key onUpdate="none" foreignTable="days" onDelete="cascade"><reference local="day_id" foreign="id"/></foreign-key><foreign-key onUpdate="none" foreignTable="terms" onDelete="cascade"><reference local="term_id" foreign="id"/></foreign-key><foreign-key onUpdate="none" foreignTable="rooms" onDelete="cascade"><reference local="room_id" foreign="id"/></foreign-key></table><table skipSql="false" abstract="false" name="lessons"><column lazyLoad="false" name="id" type="integer" primaryKey="true" autoIncrement="true" required="true" description="Lesson id"/><column primaryKey="false" autoIncrement="false" lazyLoad="false" name="title" type="varchar" size="255" required="true"/><column primaryKey="false" autoIncrement="false" lazyLoad="false" name="course_id" type="integer" required="true"/><column primaryKey="false" autoIncrement="false" lazyLoad="false" name="from" type="timestamp" required="true" description="e.g. 2008-10-27 08:00:00"/><column primaryKey="false" autoIncrement="false" lazyLoad="false" name="length" type="integer" required="true" description="e.g. 40 (min)"/><column primaryKey="false" autoIncrement="false" lazyLoad="false" name="room_id" type="integer" required="true"/><foreign-key onUpdate="none" foreignTable="courses" onDelete="cascade"><reference local="course_id" foreign="id"/></foreign-key><foreign-key onUpdate="none" foreignTable="rooms" onDelete="cascade"><reference local="room_id" foreign="id"/></foreign-key></table><table skipSql="false" abstract="false" name="marks"><column lazyLoad="false" name="id" type="integer" primaryKey="true" autoIncrement="true" required="true" description="Mark id"/><column primaryKey="false" autoIncrement="false" lazyLoad="false" name="mark" type="integer" required="true" description="1, 2, 3, 4, 5"/><column primaryKey="false" autoIncrement="false" lazyLoad="false" name="scale" type="integer" required="true" description="1, 5, 10, 100"/><column primaryKey="false" autoIncrement="false" lazyLoad="false" name="lesson_id" type="integer" required="true"/><column primaryKey="false" autoIncrement="false" lazyLoad="false" name="student_id" type="integer" required="true"/><foreign-key onUpdate="none" foreignTable="lessons" onDelete="cascade"><reference local="lesson_id" foreign="id"/></foreign-key><foreign-key onUpdate="none" foreignTable="students" onDelete="cascade"><reference local="student_id" foreign="id"/></foreign-key></table><table skipSql="false" abstract="false" name="library_toc" idMethod="native" treeMode="NestedSet"><column lazyLoad="false" name="id" type="integer" primaryKey="true" autoIncrement="true" required="true" description="Toc entry id"/><column primaryKey="false" autoIncrement="false" lazyLoad="false" name="lft" type="INTEGER" required="true" default="0" nestedSetLeftKey="true"/><column primaryKey="false" autoIncrement="false" lazyLoad="false" name="rgt" type="INTEGER" required="true" default="0" nestedSetRightKey="true"/><column primaryKey="false" autoIncrement="false" lazyLoad="false" name="scope" type="INTEGER" required="true" default="0" treeScopeKey="true"/><column primaryKey="false" autoIncrement="false" lazyLoad="false" name="name" type="varchar" size="255" description="e.g. Literature, chemistry..." required="true"/><column primaryKey="false" required="false" autoIncrement="false" lazyLoad="false" name="UDK" type="varchar" size="32"/><column primaryKey="false" required="false" autoIncrement="false" lazyLoad="false" name="BBK" type="varchar" size="32"/><column primaryKey="false" required="false" autoIncrement="false" lazyLoad="false" name="school_id" type="integer" description="Fkey to school"/><foreign-key onUpdate="none" foreignTable="schools" onDelete="cascade"><reference local="school_id" foreign="id"/></foreign-key><index name="lft"><index-column name="lft"/></index><index name="rgt"><index-column name="rgt"/></index><index name="scope"><index-column name="scope"/></index></table><table skipSql="false" abstract="false" name="library_items"><column lazyLoad="false" name="id" type="integer" primaryKey="true" autoIncrement="true" required="true" description="Item id"/><column primaryKey="false" autoIncrement="false" lazyLoad="false" name="title" type="varchar" size="255" required="true"/><column primaryKey="false" required="false" autoIncrement="false" lazyLoad="false" name="author" type="varchar" size="255"/><column primaryKey="false" autoIncrement="false" lazyLoad="false" name="author_type" type="varchar" size="255" description="enum('author','drawer','collective','editor','other','none')" required="true"/><column primaryKey="false" required="false" autoIncrement="false" lazyLoad="false" name="description" type="longvarchar"/><column primaryKey="false" required="false" autoIncrement="false" lazyLoad="false" name="ISBN" type="varchar" size="32"/><column primaryKey="false" required="false" autoIncrement="false" lazyLoad="false" name="UDK" type="varchar" size="32"/><column primaryKey="false" required="false" autoIncrement="false" lazyLoad="false" name="BBK" type="varchar" size="32"/><column primaryKey="false" autoIncrement="false" lazyLoad="false" name="copies_count" type="integer" required="true"/><column primaryKey="false" required="false" autoIncrement="false" lazyLoad="false" name="readers_count" type="integer"/><column primaryKey="false" required="false" autoIncrement="false" lazyLoad="false" name="school_id" type="integer" description="Fkey to school"/><column primaryKey="false" required="false" autoIncrement="false" lazyLoad="false" name="item_type_key" type="INTEGER" inheritance="single"><inheritance key="1" class="Articles" extends="openschool.LibraryItems"/><inheritance key="2" class="Magazines" extends="openschool.LibraryItems"/><inheritance key="3" class="Books" extends="openschool.LibraryItems"/><inheritance key="4" class="BooksToc" extends="openschool.LibraryItems"/><inheritance key="5" class="Document" extends="openschool.LibraryItems"/><inheritance key="6" class="Url" extends="openschool.LibraryItems"/></column><foreign-key onUpdate="none" foreignTable="schools" onDelete="cascade"><reference local="school_id" foreign="id"/></foreign-key></table><table skipSql="false" abstract="false" name="articles" description="Articles table extends LibraryItems" phpName="inheritance_articles"><column required="false" autoIncrement="false" lazyLoad="false" name="id" type="integer" primaryKey="true" description="Article id"/><column primaryKey="false" autoIncrement="false" lazyLoad="false" name="first_page" type="integer" required="true"/><column primaryKey="false" autoIncrement="false" lazyLoad="false" name="last_page" type="integer" required="true"/><column autoIncrement="false" lazyLoad="false" name="magazine_id" type="integer" required="true" primaryKey="true"/><foreign-key onUpdate="none" foreignTable="magazines" onDelete="cascade"><reference local="magazine_id" foreign="id"/></foreign-key><foreign-key onUpdate="none" foreignTable="library_items" onDelete="cascade"><reference local="id" foreign="id"/></foreign-key></table><table skipSql="false" abstract="false" name="magazines" description="Magazines table extends LibraryItems" phpName="inheritance_magazines"><column required="false" autoIncrement="false" lazyLoad="false" name="id" type="integer" primaryKey="true" description="Magazine id"/><column primaryKey="false" required="false" autoIncrement="false" lazyLoad="false" name="publisher" type="varchar" size="255"/><column primaryKey="false" autoIncrement="false" lazyLoad="false" name="magazine_number" type="integer" required="true"/><column primaryKey="false" autoIncrement="false" lazyLoad="false" name="magazine_year" type="date" sqlType="year" required="true"/><foreign-key onUpdate="none" foreignTable="library_items" onDelete="cascade"><reference local="id" foreign="id"/></foreign-key></table><table skipSql="false" abstract="false" name="books" description="Books table extends LibraryItems" phpName="inheritance_books"><column required="false" autoIncrement="false" lazyLoad="false" name="id" type="integer" primaryKey="true" description="Book id"/><column primaryKey="false" required="false" autoIncrement="false" lazyLoad="false" name="publisher" type="varchar" size="255"/><column primaryKey="false" autoIncrement="false" lazyLoad="false" name="year_published" type="date" sqlType="year" required="true"/><column primaryKey="false" required="false" autoIncrement="false" lazyLoad="false" name="price" type="float"/><foreign-key onUpdate="none" foreignTable="library_items" onDelete="cascade"><reference local="id" foreign="id"/></foreign-key></table><table skipSql="false" abstract="false" name="inventory_nums" description="Inventory numbers for books"><column required="false" autoIncrement="false" lazyLoad="false" name="inventory_number" type="integer" primaryKey="true"/><column primaryKey="false" autoIncrement="false" lazyLoad="false" name="book_id" type="integer" required="true"/><foreign-key onUpdate="none" foreignTable="books" onDelete="cascade"><reference local="book_id" foreign="id"/></foreign-key></table><table skipSql="false" abstract="false" name="book_toc" description="BookToc table extends LibraryItems. Table of contents for books" phpName="inheritance_books_toc"><column required="false" autoIncrement="false" lazyLoad="false" name="id" type="integer" primaryKey="true" description="Book toc entry id"/><column autoIncrement="false" lazyLoad="false" name="book_id" type="integer" required="true" primaryKey="true"/><foreign-key onUpdate="none" foreignTable="books" onDelete="cascade"><reference local="book_id" foreign="id"/></foreign-key><foreign-key onUpdate="none" foreignTable="library_items" onDelete="cascade"><reference local="id" foreign="id"/></foreign-key></table><table skipSql="false" abstract="false" name="documents" description="Documents table extends LibraryItems" phpName="inheritance_documents"><column required="false" autoIncrement="false" lazyLoad="false" name="id" type="integer" primaryKey="true" description="Document id"/><column primaryKey="false" required="false" autoIncrement="false" lazyLoad="false" name="publisher" type="varchar" size="255"/><foreign-key onUpdate="none" foreignTable="library_items" onDelete="cascade"><reference local="id" foreign="id"/></foreign-key></table><table skipSql="false" abstract="false" name="urls" description="Urls table extends LibraryItems" phpName="inheritance_urls"><column required="false" autoIncrement="false" lazyLoad="false" name="id" type="integer" primaryKey="true" description="Url id"/><column primaryKey="false" required="false" autoIncrement="false" lazyLoad="false" name="url" type="varchar" size="255"/><foreign-key onUpdate="none" foreignTable="library_items" onDelete="cascade"><reference local="id" foreign="id"/></foreign-key></table><table skipSql="false" abstract="false" name="library_items_toc"><column autoIncrement="false" lazyLoad="false" name="toc_id" type="integer" required="true" primaryKey="true"/><column autoIncrement="false" lazyLoad="false" name="item_id" type="integer" required="true" primaryKey="true"/><foreign-key onDelete="none" onUpdate="none" foreignTable="library_items"><reference local="item_id" foreign="id"/></foreign-key><foreign-key onDelete="none" onUpdate="none" foreignTable="library_toc"><reference local="toc_id" foreign="id"/></foreign-key></table><table skipSql="false" abstract="false" name="library_items_users" description="Readers"><column autoIncrement="false" lazyLoad="false" name="user_id" type="integer" required="true" primaryKey="true"/><column autoIncrement="false" lazyLoad="false" name="item_id" type="integer" required="true" primaryKey="true"/><foreign-key onDelete="none" onUpdate="none" foreignTable="library_items"><reference local="item_id" foreign="id"/></foreign-key><foreign-key onDelete="none" onUpdate="none" foreignTable="users"><reference local="user_id" foreign="id"/></foreign-key></table></database>

