Solution for Database Drill: Many To Many Schema
Solution for Challenge: Database Drill: Many To Many Schema. Started 2014-02-10T04:01:00+00:00
<?xml version="1.0" encoding="utf-8" ?>
<!-- SQL XML created by WWW SQL Designer, http://code.google.com/p/wwwsqldesigner/ -->
<!-- Active URL: https://socrates.devbootcamp.com/sql.html -->
<sql>
<datatypes db="mysql">
<group label="Numeric" color="rgb(238,238,170)">
<type label="Integer" length="0" sql="INTEGER" re="INT" quote="" />
<type label="Decimal" length="1" sql="DECIMAL" re="DEC" quote="" />
<type label="Single precision" length="0" sql="FLOAT" quote="" />
<type label="Double precision" length="0" sql="DOUBLE" re="DOUBLE" quote="" />
</group>
<group label="Character" color="rgb(255,200,200)">
<type label="Char" length="1" sql="CHAR" quote="'" />
<type label="Varchar" length="1" sql="VARCHAR" quote="'" />
<type label="Text" length="0" sql="MEDIUMTEXT" re="TEXT" quote="'" />
<type label="Binary" length="1" sql="BINARY" quote="'" />
<type label="Varbinary" length="1" sql="VARBINARY" quote="'" />
<type label="BLOB" length="0" sql="BLOB" re="BLOB" quote="'" />
</group>
<group label="Date & Time" color="rgb(200,255,200)">
<type label="Date" length="0" sql="DATE" quote="'" />
<type label="Time" length="0" sql="TIME" quote="'" />
<type label="Datetime" length="0" sql="DATETIME" quote="'" />
<type label="Year" length="0" sql="YEAR" quote="" />
<type label="Timestamp" length="0" sql="TIMESTAMP" quote="'" />
</group>
<group label="Miscellaneous" color="rgb(200,200,255)">
<type label="ENUM" length="1" sql="ENUM" quote="" />
<type label="SET" length="1" sql="SET" quote="" />
<type label="Bit" length="0" sql="bit" quote="" />
</group>
</datatypes>
<table x="222" y="177" name="authors">
<row name="id" null="0" autoincrement="1">
<datatype>INTEGER(10)</datatype>
</row>
<row name="first_name" null="1" autoincrement="0">
<datatype>VARCHAR(60)</datatype>
<comment>allow null for authors with one name</comment>
</row>
<row name="last_name" null="0" autoincrement="0">
<datatype>VARCHAR(60)</datatype>
</row>
<row name="created_at" null="0" autoincrement="0">
<datatype>TIMESTAMP</datatype>
</row>
<row name="updated_at" null="0" autoincrement="0">
<datatype>TIMESTAMP</datatype>
</row>
<key type="PRIMARY" name="">
<part>id</part>
</key>
</table>
<table x="477" y="114" name="authors_books">
<row name="id" null="0" autoincrement="1">
<datatype>INTEGER(20)</datatype>
</row>
<row name="author_id" null="0" autoincrement="0">
<datatype>INTEGER(10)</datatype>
<relation table="authors" row="id" />
</row>
<row name="book_id" null="0" autoincrement="0">
<datatype>INTEGER(20)</datatype>
<relation table="books" row="id" />
</row>
<key type="PRIMARY" name="order_id">
<part>id</part>
</key>
<key type="INDEX" name="">
<part>id</part>
</key>
</table>
<table x="720" y="165" name="books">
<row name="id" null="0" autoincrement="1">
<datatype>INTEGER(20)</datatype>
</row>
<row name="title" null="0" autoincrement="0">
<datatype>VARCHAR(100)</datatype>
</row>
<row name="publisher_id" null="1" autoincrement="0">
<datatype>INTEGER(10)</datatype>
<relation table="publishers" row="id" />
<comment>default to empty, but allow null for special cases when publisher is unknown or does not exist</comment>
</row>
<row name="created_at" null="0" autoincrement="0">
<datatype>TIMESTAMP</datatype>
</row>
<row name="updated_at" null="0" autoincrement="0">
<datatype>TIMESTAMP</datatype>
</row>
<key type="PRIMARY" name="">
<part>id</part>
</key>
</table>
<table x="464" y="296" name="publishers">
<row name="id" null="0" autoincrement="1">
<datatype>INTEGER(10)</datatype>
</row>
<row name="name" null="0" autoincrement="0">
<datatype>VARCHAR(60)</datatype>
</row>
<row name="address" null="0" autoincrement="0">
<datatype>VARCHAR(100)</datatype>
</row>
<row name="created_at" null="0" autoincrement="0">
<datatype>TIMESTAMP</datatype>
</row>
<row name="updated_at" null="0" autoincrement="0">
<datatype>TIMESTAMP</datatype>
</row>
<key type="PRIMARY" name="">
<part>id</part>
</key>
</table>
</sql>