gallery.mysql.schema.xml 8.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139
  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <model package="gallery" baseClass="xPDOObject" platform="mysql" defaultEngine="MyISAM">
  3. <!--
  4. An image or video
  5. -->
  6. <object class="galItem" table="gallery_items" extends="xPDOSimpleObject">
  7. <field key="name" dbtype="varchar" precision="100" phptype="string" null="false" default="" />
  8. <field key="filename" dbtype="varchar" precision="255" phptype="string" null="false" default="" />
  9. <field key="description" dbtype="text" phptype="string" />
  10. <field key="mediatype" dbtype="varchar" precision="40" phptype="string" null="false" default="image" /><!-- image/video -->
  11. <field key="url" dbtype="text" phptype="string" />
  12. <field key="createdon" dbtype="datetime" phptype="datetime" null="true" />
  13. <field key="createdby" dbtype="int" precision="10" phptype="integer" attributes="unsigned" null="false" default="0" index="index" />
  14. <field key="active" dbtype="tinyint" precision="1" phptype="integer" attributes="unsigned" null="false" default="0" />
  15. <field key="duration" dbtype="varchar" precision="40" phptype="string" null="false" default="" />
  16. <field key="streamer" dbtype="text" phptype="string" />
  17. <field key="watermark_pos" dbtype="varchar" precision="10" phptype="string" null="false" default="tl" /><!-- BR, BL, TR, TL, C, R, L, T, B, * -->
  18. <index alias="name" name="name" primary="false" unique="false" type="BTREE">
  19. <column key="name" length="" collation="A" null="false" />
  20. </index>
  21. <index alias="active" name="active" primary="false" unique="false" type="BTREE">
  22. <column key="active" length="" collation="A" null="false" />
  23. </index>
  24. <index alias="mediatype" name="mediatype" primary="false" unique="false" type="BTREE">
  25. <column key="mediatype" length="" collation="A" null="false" />
  26. </index>
  27. <aggregate alias="CreatedBy" class="modUser" local="createdby" foreign="id" cardinality="one" owner="foreign" />
  28. <composite alias="AlbumItems" class="galAlbumItem" local="id" foreign="item" cardinality="many" owner="local" />
  29. <composite alias="Tags" class="galTag" local="id" foreign="item" cardinality="many" owner="local" />
  30. </object>
  31. <!--
  32. A collection of items
  33. -->
  34. <object class="galAlbum" table="gallery_albums" extends="xPDOSimpleObject">
  35. <field key="parent" dbtype="int" precision="10" phptype="integer" attributes="unsigned" null="false" default="0" index="index" />
  36. <field key="name" dbtype="varchar" precision="255" phptype="string" null="false" default="" index="index" />
  37. <field key="year" dbtype="varchar" precision="255" phptype="string" />
  38. <field key="description" dbtype="text" phptype="string" />
  39. <field key="createdon" dbtype="datetime" phptype="datetime" null="true" />
  40. <field key="createdby" dbtype="int" precision="10" phptype="integer" attributes="unsigned" null="false" default="0" index="index" />
  41. <field key="rank" dbtype="int" precision="10" phptype="integer" attributes="unsigned" null="false" default="0" />
  42. <field key="active" dbtype="tinyint" precision="1" phptype="integer" attributes="unsigned" null="false" default="0" />
  43. <field key="prominent" dbtype="tinyint" precision="1" phptype="integer" attributes="unsigned" null="false" default="0" />
  44. <field key="watermark" dbtype="varchar" precision="255" phptype="string" null="false" default="" />
  45. <field key="cover_filename" dbtype="varchar" precision="255" phptype="string" null="false" default=""/>
  46. <index alias="parent" name="parent" primary="false" unique="false" type="BTREE">
  47. <column key="parent" length="" collation="A" null="false" />
  48. </index>
  49. <index alias="name" name="name" primary="false" unique="false" type="BTREE">
  50. <column key="name" length="" collation="A" null="false" />
  51. </index>
  52. <index alias="createdby" name="createdby" primary="false" unique="false" type="BTREE">
  53. <column key="createdby" length="" collation="A" null="false" />
  54. </index>
  55. <index alias="rank" name="rank" primary="false" unique="false" type="BTREE">
  56. <column key="rank" length="" collation="A" null="false" />
  57. </index>
  58. <index alias="active" name="active" primary="false" unique="false" type="BTREE">
  59. <column key="active" length="" collation="A" null="false" />
  60. </index>
  61. <index alias="prominent" name="prominent" primary="false" unique="false" type="BTREE">
  62. <column key="prominent" length="" collation="A" null="false" />
  63. </index>
  64. <aggregate alias="Parent" class="galAlbum" local="parent" foreign="id" cardinality="one" owner="foreign" />
  65. <aggregate alias="CreatedBy" class="modUser" local="createdby" foreign="id" cardinality="one" owner="foreign" />
  66. <composite alias="AlbumItems" class="galAlbumItem" local="id" foreign="album" cardinality="many" owner="local" />
  67. <composite alias="Contexts" class="galAlbumContext" local="id" foreign="album" cardinality="many" owner="local" />
  68. <composite alias="Children" class="galAlbum" local="id" foreign="parent" cardinality="many" owner="local" />
  69. </object>
  70. <!--
  71. Many to many relationship between items and albums
  72. -->
  73. <object class="galAlbumItem" table="gallery_album_items" extends="xPDOSimpleObject">
  74. <field key="item" dbtype="int" precision="10" attributes="unsigned" phptype="integer" null="false" default="0" index="index" />
  75. <field key="album" dbtype="int" precision="10" attributes="unsigned" phptype="integer" null="false" default="0" index="index" />
  76. <field key="rank" dbtype="int" precision="10" attributes="unsigned" phptype="integer" null="false" default="0" />
  77. <index alias="item" name="item" primary="false" unique="false" type="BTREE">
  78. <column key="item" length="" collation="A" null="false" />
  79. </index>
  80. <index alias="album" name="album" primary="false" unique="false" type="BTREE">
  81. <column key="album" length="" collation="A" null="false" />
  82. </index>
  83. <index alias="rank" name="rank" primary="false" unique="false" type="BTREE">
  84. <column key="rank" length="" collation="A" null="false" />
  85. </index>
  86. <aggregate alias="Album" class="galAlbum" local="album" foreign="id" cardinality="one" owner="foreign" />
  87. <aggregate alias="Item" class="galItem" local="item" foreign="id" cardinality="one" owner="foreign" />
  88. </object>
  89. <!--
  90. One to many relationship on context access for each album
  91. -->
  92. <object class="galAlbumContext" table="gallery_album_contexts" extends="xPDOSimpleObject">
  93. <field key="album" dbtype="int" precision="10" attributes="unsigned" phptype="integer" null="false" default="0" index="index" />
  94. <field key="context_key" dbtype="varchar" precision="100" phptype="string" null="false" default="web" index="index" />
  95. <index alias="album" name="album" primary="false" unique="false" type="BTREE">
  96. <column key="album" length="" collation="A" null="false" />
  97. </index>
  98. <index alias="context_key" name="context_key" primary="false" unique="false" type="BTREE">
  99. <column key="context_key" length="" collation="A" null="false" />
  100. </index>
  101. <aggregate alias="Album" class="galAlbum" local="album" foreign="id" cardinality="one" owner="foreign" />
  102. <aggregate alias="Context" class="modContext" local="context_key" foreign="key" cardinality="one" owner="foreign" />
  103. </object>
  104. <!--
  105. Tags for items
  106. -->
  107. <object class="galTag" table="gallery_tags" extends="xPDOSimpleObject">
  108. <field key="item" dbtype="int" precision="10" attributes="unsigned" phptype="integer" null="false" default="0" index="index" />
  109. <field key="tag" dbtype="varchar" precision="255" phptype="string" null="false" default="" index="index" />
  110. <index alias="item" name="item" primary="false" unique="false" type="BTREE">
  111. <column key="item" length="" collation="A" null="false" />
  112. </index>
  113. <index alias="tag" name="tag" primary="false" unique="false" type="BTREE">
  114. <column key="tag" length="" collation="A" null="false" />
  115. </index>
  116. <aggregate alias="Item" class="galItem" local="item" foreign="id" cardinality="one" owner="foreign" />
  117. </object>
  118. <object class="GalleryAlbumsMediaSource" extends="modMediaSource">
  119. </object>
  120. </model>