Advertisement
Guest User

Untitled

a guest
Jan 7th, 2019
593
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
SQL 62.07 KB | None | 0 0
  1. BEGIN TRANSACTION;
  2. CREATE TABLE IF NOT EXISTS `utensil_materialObject` (
  3.     `utensil_id`    INTEGER NOT NULL,
  4.     `materialObject_id` INTEGER NOT NULL,
  5.     `position`  INTEGER NOT NULL,
  6.     `isPrimary` BOOLEAN NOT NULL DEFAULT 0,
  7.     PRIMARY KEY(`utensil_id`,`materialObject_id`),
  8.     FOREIGN KEY(`utensil_id`) REFERENCES `utensil` ON DELETE CASCADE ON UPDATE CASCADE,
  9.     FOREIGN KEY(`materialObject_id`) REFERENCES `materialObject` ON DELETE CASCADE ON UPDATE CASCADE
  10. );
  11. CREATE TABLE IF NOT EXISTS `utensilType` (
  12.     `id`    INTEGER NOT NULL,
  13.     `utensilText`   VARCHAR NOT NULL,
  14.     PRIMARY KEY(`id`)
  15. );
  16. CREATE TABLE IF NOT EXISTS `utensilLangAttribute` (
  17.     `id`    INTEGER NOT NULL,
  18.     `name`  VARCHAR NOT NULL,
  19.     PRIMARY KEY(`id`)
  20. );
  21. CREATE TABLE IF NOT EXISTS `utensilLang` (
  22.     `utensil_id`    INTEGER NOT NULL,
  23.     `utensilLangAttribute_id`   INTEGER NOT NULL,
  24.     `locale_id` INTEGER NOT NULL,
  25.     `text`  VARCHAR NOT NULL,
  26.     `sortKey`   BLOB NOT NULL,
  27.     PRIMARY KEY(`utensil_id`,`utensilLangAttribute_id`,`locale_id`),
  28.     FOREIGN KEY(`locale_id`) REFERENCES `locale` ON DELETE CASCADE ON UPDATE RESTRICT,
  29.     FOREIGN KEY(`utensilLangAttribute_id`) REFERENCES `utensilLangAttribute` ON DELETE CASCADE ON UPDATE RESTRICT,
  30.     FOREIGN KEY(`utensil_id`) REFERENCES `utensil` ON DELETE CASCADE ON UPDATE CASCADE
  31. );
  32. CREATE TABLE IF NOT EXISTS `utensil` (
  33.     `id`    INTEGER NOT NULL,
  34.     `uid`   VARCHAR NOT NULL,
  35.     `utensilType_id`    INTEGER NOT NULL,
  36.     `version`   DECIMAL ( 8 , 2 ) NOT NULL,
  37.     FOREIGN KEY(`utensilType_id`) REFERENCES `utensilType` ON DELETE CASCADE ON UPDATE RESTRICT,
  38.     PRIMARY KEY(`id`)
  39. );
  40. CREATE TABLE IF NOT EXISTS `unit_unitType` (
  41.     `unit_id`   INTEGER NOT NULL,
  42.     `unitType_id`   INTEGER NOT NULL,
  43.     FOREIGN KEY(`unit_id`) REFERENCES `unit` ON DELETE CASCADE ON UPDATE CASCADE,
  44.     PRIMARY KEY(`unit_id`,`unitType_id`),
  45.     FOREIGN KEY(`unitType_id`) REFERENCES `unitType` ON DELETE CASCADE ON UPDATE RESTRICT
  46. );
  47. CREATE TABLE IF NOT EXISTS `unitType` (
  48.     `id`    INTEGER NOT NULL,
  49.     `type`  VARCHAR NOT NULL,
  50.     PRIMARY KEY(`id`)
  51. );
  52. CREATE TABLE IF NOT EXISTS `unitNotationPriority` (
  53.     `id`    INTEGER NOT NULL,
  54.     `text`  VARCHAR NOT NULL,
  55.     PRIMARY KEY(`id`)
  56. );
  57. CREATE TABLE IF NOT EXISTS `unitNotationLangAttribute` (
  58.     `id`    INTEGER NOT NULL,
  59.     `name`  VARCHAR NOT NULL,
  60.     PRIMARY KEY(`id`)
  61. );
  62. CREATE TABLE IF NOT EXISTS `unitNotationLang` (
  63.     `unitNotation_id`   INTEGER NOT NULL,
  64.     `unitNotationLangAttribute_id`  INTEGER NOT NULL,
  65.     `locale_id` INTEGER NOT NULL,
  66.     `text`  VARCHAR NOT NULL,
  67.     `sortKey`   BLOB NOT NULL,
  68.     FOREIGN KEY(`unitNotation_id`) REFERENCES `unitNotation` ON DELETE CASCADE ON UPDATE CASCADE,
  69.     PRIMARY KEY(`unitNotation_id`,`unitNotationLangAttribute_id`,`locale_id`),
  70.     FOREIGN KEY(`locale_id`) REFERENCES `locale` ON DELETE CASCADE ON UPDATE RESTRICT,
  71.     FOREIGN KEY(`unitNotationLangAttribute_id`) REFERENCES `unitNotationLangAttribute` ON DELETE CASCADE ON UPDATE RESTRICT
  72. );
  73. CREATE TABLE IF NOT EXISTS `unitNotation` (
  74.     `id`    INTEGER NOT NULL,
  75.     `unit_id`   INTEGER NOT NULL,
  76.     `unitNotationPriority_id`   INTEGER NOT NULL,
  77.     FOREIGN KEY(`unit_id`) REFERENCES `unit` ON DELETE CASCADE ON UPDATE CASCADE,
  78.     FOREIGN KEY(`unitNotationPriority_id`) REFERENCES `unitNotationPriority` ON DELETE CASCADE ON UPDATE RESTRICT,
  79.     PRIMARY KEY(`id`)
  80. );
  81. CREATE TABLE IF NOT EXISTS `unit` (
  82.     `id`    INTEGER NOT NULL,
  83.     `position`  INTEGER NOT NULL,
  84.     `version`   INTEGER NOT NULL,
  85.     PRIMARY KEY(`id`)
  86. );
  87. CREATE TABLE IF NOT EXISTS `tmVersion` (
  88.     `id`    INTEGER NOT NULL,
  89.     `version`   VARCHAR NOT NULL,
  90.     PRIMARY KEY(`id`)
  91. );
  92. CREATE TABLE IF NOT EXISTS `tmControlTurboType` (
  93.     `id`    INTEGER NOT NULL,
  94.     `value` VARCHAR NOT NULL,
  95.     PRIMARY KEY(`id`)
  96. );
  97. CREATE TABLE IF NOT EXISTS `tmControlTimeType` (
  98.     `id`    INTEGER NOT NULL,
  99.     `value` VARCHAR NOT NULL,
  100.     PRIMARY KEY(`id`)
  101. );
  102. CREATE TABLE IF NOT EXISTS `tmControlTimeRange` (
  103.     `tmControl_id`  INTEGER NOT NULL,
  104.     `rangeType_id`  INTEGER NOT NULL,
  105.     `time`  INTEGER NOT NULL,
  106.     FOREIGN KEY(`rangeType_id`) REFERENCES `rangeType` ON DELETE CASCADE ON UPDATE RESTRICT,
  107.     PRIMARY KEY(`tmControl_id`,`rangeType_id`),
  108.     FOREIGN KEY(`tmControl_id`) REFERENCES `tmControlTime` ON DELETE CASCADE ON UPDATE CASCADE
  109. );
  110. CREATE TABLE IF NOT EXISTS `tmControlTime` (
  111.     `tmControl_id`  INTEGER NOT NULL,
  112.     `tmControlTimeType_id`  INTEGER NOT NULL,
  113.     PRIMARY KEY(`tmControl_id`),
  114.     FOREIGN KEY(`tmControl_id`) REFERENCES `tmControl` ON DELETE CASCADE ON UPDATE CASCADE,
  115.     FOREIGN KEY(`tmControlTimeType_id`) REFERENCES `tmControlTimeType` ON DELETE CASCADE ON UPDATE RESTRICT
  116. );
  117. CREATE TABLE IF NOT EXISTS `tmControlTemperatureType` (
  118.     `id`    INTEGER NOT NULL,
  119.     `value` INTEGER NOT NULL,
  120.     `description`   VARCHAR NOT NULL,
  121.     PRIMARY KEY(`id`)
  122. );
  123. CREATE TABLE IF NOT EXISTS `tmControlSpeedType` (
  124.     `id`    INTEGER NOT NULL,
  125.     `value` FLOAT NOT NULL,
  126.     `description`   VARCHAR NOT NULL,
  127.     PRIMARY KEY(`id`)
  128. );
  129. CREATE TABLE IF NOT EXISTS `tmControlSpeedRange` (
  130.     `tmControlSpeed_id` INTEGER NOT NULL,
  131.     `rangeType_id`  INTEGER NOT NULL,
  132.     `tmControlSpeedType_id` INTEGER NOT NULL,
  133.     FOREIGN KEY(`tmControlSpeed_id`) REFERENCES `tmControlSpeed` ON DELETE CASCADE ON UPDATE CASCADE,
  134.     PRIMARY KEY(`tmControlSpeed_id`,`rangeType_id`),
  135.     FOREIGN KEY(`tmControlSpeedType_id`) REFERENCES `tmControlSpeedType` ON DELETE CASCADE ON UPDATE RESTRICT,
  136.     FOREIGN KEY(`rangeType_id`) REFERENCES `rangeType` ON DELETE CASCADE ON UPDATE RESTRICT
  137. );
  138. CREATE TABLE IF NOT EXISTS `tmControlSpeed` (
  139.     `id`    INTEGER NOT NULL,
  140.     `tmControlRotationDirectionType_id` INTEGER NOT NULL,
  141.     PRIMARY KEY(`id`),
  142.     FOREIGN KEY(`id`) REFERENCES `tmControl` ON DELETE CASCADE ON UPDATE CASCADE,
  143.     FOREIGN KEY(`tmControlRotationDirectionType_id`) REFERENCES `tmControlRotationDirectionType` ON DELETE CASCADE ON UPDATE RESTRICT
  144. );
  145. CREATE TABLE IF NOT EXISTS `tmControlRotationDirectionType` (
  146.     `id`    INTEGER NOT NULL,
  147.     `value` VARCHAR NOT NULL,
  148.     PRIMARY KEY(`id`)
  149. );
  150. CREATE TABLE IF NOT EXISTS `tmControlProgramType` (
  151.     `id`    INTEGER NOT NULL,
  152.     `program`   VARCHAR NOT NULL,
  153.     PRIMARY KEY(`id`)
  154. );
  155. CREATE TABLE IF NOT EXISTS `tmControlProgramTurbo` (
  156.     `tmControl_id`  INTEGER NOT NULL,
  157.     `tmControlTurboType_id` INTEGER NOT NULL,
  158.     `impulseCount`  INTEGER NOT NULL,
  159.     FOREIGN KEY(`tmControlTurboType_id`) REFERENCES `tmControlTurboType` ON DELETE CASCADE ON UPDATE RESTRICT,
  160.     PRIMARY KEY(`tmControl_id`),
  161.     FOREIGN KEY(`tmControl_id`) REFERENCES `tmControlProgram` ON DELETE CASCADE ON UPDATE CASCADE
  162. );
  163. CREATE TABLE IF NOT EXISTS `tmControlProgramSoftBlendingSpeedRangeType` (
  164.     `id`    INTEGER NOT NULL,
  165.     `type`  CLOB NOT NULL,
  166.     PRIMARY KEY(`id`)
  167. );
  168. CREATE TABLE IF NOT EXISTS `tmControlProgramSoftBlendingSpeedRange` (
  169.     `tmControlProgramSoftBlending_id`   INTEGER NOT NULL,
  170.     `tmControlProgramSoftBlendingSpeedRangeType_id` INTEGER NOT NULL,
  171.     `tmControlSpeedType_id` INTEGER NOT NULL,
  172.     FOREIGN KEY(`tmControlProgramSoftBlendingSpeedRangeType_id`) REFERENCES `tmControlProgramSoftBlendingSpeedRangeType` ON DELETE CASCADE ON UPDATE RESTRICT,
  173.     PRIMARY KEY(`tmControlProgramSoftBlending_id`,`tmControlProgramSoftBlendingSpeedRangeType_id`),
  174.     FOREIGN KEY(`tmControlSpeedType_id`) REFERENCES `tmControlSpeedType` ON DELETE CASCADE ON UPDATE RESTRICT,
  175.     FOREIGN KEY(`tmControlProgramSoftBlending_id`) REFERENCES `tmControlProgramSoftBlending` ON DELETE CASCADE ON UPDATE CASCADE
  176. );
  177. CREATE TABLE IF NOT EXISTS `tmControlProgramSoftBlending` (
  178.     `tmControl_id`  INTEGER NOT NULL,
  179.     `duration`  INTEGER NOT NULL,
  180.     PRIMARY KEY(`tmControl_id`),
  181.     FOREIGN KEY(`tmControl_id`) REFERENCES `tmControlProgram` ON DELETE CASCADE ON UPDATE CASCADE
  182. );
  183. CREATE TABLE IF NOT EXISTS `tmControlProgram` (
  184.     `id`    INTEGER NOT NULL,
  185.     `tmControlProgramType_id`   INTEGER NOT NULL,
  186.     FOREIGN KEY(`tmControlProgramType_id`) REFERENCES `tmControlProgramType` ON DELETE CASCADE ON UPDATE RESTRICT,
  187.     PRIMARY KEY(`id`),
  188.     FOREIGN KEY(`id`) REFERENCES `tmControl` ON DELETE CASCADE ON UPDATE CASCADE
  189. );
  190. CREATE TABLE IF NOT EXISTS `tmControlLangAttribute` (
  191.     `id`    INTEGER NOT NULL,
  192.     `type`  CLOB NOT NULL,
  193.     PRIMARY KEY(`id`)
  194. );
  195. CREATE TABLE IF NOT EXISTS `tmControlLang` (
  196.     `tmControl_id`  INTEGER NOT NULL,
  197.     `tmControlLangAttribute_id` INTEGER NOT NULL,
  198.     `locale_id` INTEGER NOT NULL,
  199.     `text`  CLOB NOT NULL,
  200.     `sortKey`   BLOB NOT NULL,
  201.     FOREIGN KEY(`tmControlLangAttribute_id`) REFERENCES `tmControlLangAttribute` ON DELETE CASCADE ON UPDATE RESTRICT,
  202.     FOREIGN KEY(`locale_id`) REFERENCES `locale` ON DELETE CASCADE ON UPDATE RESTRICT,
  203.     PRIMARY KEY(`tmControl_id`,`tmControlLangAttribute_id`,`locale_id`),
  204.     FOREIGN KEY(`tmControl_id`) REFERENCES `tmControl` ON DELETE CASCADE ON UPDATE CASCADE
  205. );
  206. CREATE TABLE IF NOT EXISTS `tmControl` (
  207.     `id`    INTEGER NOT NULL,
  208.     `tmControlTemperatureType_id`   INTEGER NOT NULL,
  209.     `position`  INTEGER NOT NULL,
  210.     FOREIGN KEY(`tmControlTemperatureType_id`) REFERENCES `tmControlTemperatureType` ON DELETE CASCADE ON UPDATE RESTRICT,
  211.     PRIMARY KEY(`id`)
  212. );
  213. CREATE TABLE IF NOT EXISTS `shoppingCategoryLangAttribute` (
  214.     `id`    INTEGER NOT NULL,
  215.     `name`  VARCHAR NOT NULL,
  216.     PRIMARY KEY(`id`)
  217. );
  218. CREATE TABLE IF NOT EXISTS `shoppingCategoryLang` (
  219.     `shoppingCategory_id`   INTEGER NOT NULL,
  220.     `shoppingCategoryLangAttribute_id`  INTEGER NOT NULL,
  221.     `locale_id` INTEGER NOT NULL,
  222.     `text`  VARCHAR NOT NULL,
  223.     `sortKey`   BLOB NOT NULL,
  224.     FOREIGN KEY(`shoppingCategory_id`) REFERENCES `shoppingCategory` ON DELETE CASCADE ON UPDATE CASCADE,
  225.     PRIMARY KEY(`shoppingCategory_id`,`shoppingCategoryLangAttribute_id`,`locale_id`),
  226.     FOREIGN KEY(`locale_id`) REFERENCES `locale` ON DELETE CASCADE ON UPDATE RESTRICT,
  227.     FOREIGN KEY(`shoppingCategoryLangAttribute_id`) REFERENCES `shoppingCategoryLangAttribute` ON DELETE CASCADE ON UPDATE RESTRICT
  228. );
  229. CREATE TABLE IF NOT EXISTS `shoppingCategory` (
  230.     `id`    INTEGER NOT NULL,
  231.     `position`  INTEGER NOT NULL,
  232.     PRIMARY KEY(`id`)
  233. );
  234. CREATE TABLE IF NOT EXISTS `recipe_utensil` (
  235.     `recipe_id` INTEGER NOT NULL,
  236.     `utensil_id`    INTEGER NOT NULL,
  237.     `position`  INTEGER NOT NULL DEFAULT 0,
  238.     PRIMARY KEY(`recipe_id`,`utensil_id`),
  239.     FOREIGN KEY(`utensil_id`) REFERENCES `utensil` ON DELETE CASCADE ON UPDATE CASCADE,
  240.     FOREIGN KEY(`recipe_id`) REFERENCES `recipe` ON DELETE CASCADE ON UPDATE CASCADE
  241. );
  242. CREATE TABLE IF NOT EXISTS `recipe_tmVersion` (
  243.     `recipe_id` INTEGER NOT NULL,
  244.     `tmVersion_id`  INTEGER NOT NULL,
  245.     PRIMARY KEY(`recipe_id`,`tmVersion_id`),
  246.     FOREIGN KEY(`tmVersion_id`) REFERENCES `tmVersion` ON DELETE CASCADE ON UPDATE RESTRICT,
  247.     FOREIGN KEY(`recipe_id`) REFERENCES `recipe` ON DELETE CASCADE ON UPDATE CASCADE
  248. );
  249. CREATE TABLE IF NOT EXISTS `recipe_recipeCategory` (
  250.     `recipe_id` INTEGER NOT NULL,
  251.     `recipeCategory_id` INTEGER NOT NULL,
  252.     PRIMARY KEY(`recipe_id`,`recipeCategory_id`),
  253.     FOREIGN KEY(`recipe_id`) REFERENCES `recipe` ON DELETE CASCADE ON UPDATE CASCADE,
  254.     FOREIGN KEY(`recipeCategory_id`) REFERENCES `recipeCategory` ON DELETE CASCADE ON UPDATE CASCADE
  255. );
  256. CREATE TABLE IF NOT EXISTS `recipe_materialObject` (
  257.     `recipe_id` INTEGER NOT NULL,
  258.     `materialObject_id` INTEGER NOT NULL,
  259.     `position`  INTEGER NOT NULL,
  260.     `isPrimary` BOOLEAN NOT NULL DEFAULT 0,
  261.     FOREIGN KEY(`materialObject_id`) REFERENCES `materialObject` ON DELETE CASCADE ON UPDATE CASCADE,
  262.     PRIMARY KEY(`recipe_id`,`materialObject_id`),
  263.     FOREIGN KEY(`recipe_id`) REFERENCES `recipe` ON DELETE CASCADE ON UPDATE CASCADE
  264. );
  265. CREATE TABLE IF NOT EXISTS `recipe_company` (
  266.     `recipe_id` INTEGER NOT NULL,
  267.     `company_id`    INTEGER NOT NULL,
  268.     FOREIGN KEY(`recipe_id`) REFERENCES `recipe` ON DELETE CASCADE ON UPDATE CASCADE,
  269.     FOREIGN KEY(`company_id`) REFERENCES `company` ON DELETE CASCADE ON UPDATE CASCADE,
  270.     PRIMARY KEY(`recipe_id`,`company_id`)
  271. );
  272. CREATE TABLE IF NOT EXISTS `recipeTimeTypeLang` (
  273.     `recipeTimeType_id` INTEGER NOT NULL,
  274.     `locale_id` INTEGER NOT NULL,
  275.     `text`  VARCHAR NOT NULL,
  276.     `sortKey`   BLOB NOT NULL,
  277.     PRIMARY KEY(`recipeTimeType_id`,`locale_id`),
  278.     FOREIGN KEY(`locale_id`) REFERENCES `locale` ON DELETE CASCADE ON UPDATE RESTRICT,
  279.     FOREIGN KEY(`recipeTimeType_id`) REFERENCES `recipeTimeType` ON DELETE CASCADE ON UPDATE RESTRICT
  280. );
  281. CREATE TABLE IF NOT EXISTS `recipeTimeType` (
  282.     `id`    INTEGER NOT NULL,
  283.     `type`  VARCHAR NOT NULL,
  284.     PRIMARY KEY(`id`)
  285. );
  286. CREATE TABLE IF NOT EXISTS `recipeTimeRange` (
  287.     `recipeTime_id` INTEGER NOT NULL,
  288.     `rangeType_id`  INTEGER NOT NULL,
  289.     `secondsValue`  INTEGER NOT NULL,
  290.     FOREIGN KEY(`recipeTime_id`) REFERENCES `recipeTime` ON DELETE CASCADE ON UPDATE CASCADE,
  291.     FOREIGN KEY(`rangeType_id`) REFERENCES `rangeType` ON DELETE CASCADE ON UPDATE RESTRICT,
  292.     PRIMARY KEY(`recipeTime_id`,`rangeType_id`)
  293. );
  294. CREATE TABLE IF NOT EXISTS `recipeTimeLang` (
  295.     `recipeTime_id` INTEGER NOT NULL,
  296.     `locale_id` INTEGER NOT NULL,
  297.     `text`  VARCHAR NOT NULL,
  298.     `sortKey`   BLOB NOT NULL,
  299.     FOREIGN KEY(`locale_id`) REFERENCES `locale` ON DELETE CASCADE ON UPDATE RESTRICT,
  300.     PRIMARY KEY(`recipeTime_id`,`locale_id`),
  301.     FOREIGN KEY(`recipeTime_id`) REFERENCES `recipeTime` ON DELETE CASCADE ON UPDATE CASCADE
  302. );
  303. CREATE TABLE IF NOT EXISTS `recipeTime` (
  304.     `id`    INTEGER NOT NULL,
  305.     `recipe_id` INTEGER NOT NULL,
  306.     `recipeTimeType_id` INTEGER NOT NULL,
  307.     PRIMARY KEY(`id`),
  308.     FOREIGN KEY(`recipeTimeType_id`) REFERENCES `recipeTimeType` ON DELETE CASCADE ON UPDATE RESTRICT,
  309.     FOREIGN KEY(`recipe_id`) REFERENCES `recipe` ON DELETE CASCADE ON UPDATE CASCADE
  310. );
  311. CREATE TABLE IF NOT EXISTS `recipeSyncStateType` (
  312.     `id`    INTEGER NOT NULL,
  313.     `type`  CLOB NOT NULL,
  314.     PRIMARY KEY(`id`)
  315. );
  316. CREATE TABLE IF NOT EXISTS `recipeSyncState` (
  317.     `recipeSyncStateType_id`    INTEGER NOT NULL,
  318.     `value` CLOB NOT NULL,
  319.     PRIMARY KEY(`recipeSyncStateType_id`),
  320.     FOREIGN KEY(`recipeSyncStateType_id`) REFERENCES `recipeSyncStateType` ON DELETE CASCADE ON UPDATE RESTRICT
  321. );
  322. CREATE TABLE IF NOT EXISTS `recipeStep_utensil` (
  323.     `recipeStep_id` INTEGER NOT NULL,
  324.     `utensil_id`    INTEGER NOT NULL,
  325.     `position`  INTEGER NOT NULL,
  326.     FOREIGN KEY(`utensil_id`) REFERENCES `utensil` ON DELETE CASCADE ON UPDATE CASCADE,
  327.     FOREIGN KEY(`recipeStep_id`) REFERENCES `recipeStep` ON DELETE CASCADE ON UPDATE CASCADE,
  328.     PRIMARY KEY(`recipeStep_id`,`utensil_id`)
  329. );
  330. CREATE TABLE IF NOT EXISTS `recipeStep_tmControl` (
  331.     `recipeStep_id` INTEGER NOT NULL,
  332.     `tmControl_id`  INTEGER NOT NULL,
  333.     `recipe_id` INTEGER NOT NULL,
  334.     `tmVersion_id`  INTEGER NOT NULL,
  335.     PRIMARY KEY(`recipeStep_id`,`tmControl_id`),
  336.     FOREIGN KEY(`tmVersion_id`,`recipe_id`) REFERENCES `recipe_tmVersion`(`tmVersion_id`,`recipe_id`) ON DELETE CASCADE ON UPDATE CASCADE,
  337.     FOREIGN KEY(`tmControl_id`) REFERENCES `tmControl` ON DELETE CASCADE ON UPDATE CASCADE,
  338.     FOREIGN KEY(`recipeStep_id`) REFERENCES `recipeStep` ON DELETE CASCADE ON UPDATE CASCADE
  339. );
  340. CREATE TABLE IF NOT EXISTS `recipeStep_recipeIngredientRange` (
  341.     `recipeStep_id` INTEGER NOT NULL,
  342.     `recipeIngredient_id`   INTEGER NOT NULL,
  343.     `rangeType_id`  INTEGER NOT NULL,
  344.     `ingredientAmountValue` DECIMAL ( 8 , 3 ) NOT NULL,
  345.     FOREIGN KEY(`recipeIngredient_id`,`recipeStep_id`) REFERENCES `recipeStep_recipeIngredient`(`recipeIngredient_id`,`recipeStep_id`) ON DELETE CASCADE ON UPDATE CASCADE,
  346.     PRIMARY KEY(`recipeStep_id`,`recipeIngredient_id`,`rangeType_id`),
  347.     FOREIGN KEY(`rangeType_id`) REFERENCES `rangeType` ON DELETE CASCADE ON UPDATE RESTRICT
  348. );
  349. CREATE TABLE IF NOT EXISTS `recipeStep_recipeIngredient` (
  350.     `recipeStep_id` INTEGER NOT NULL,
  351.     `recipeIngredient_id`   INTEGER NOT NULL,
  352.     `position`  INTEGER NOT NULL,
  353.     FOREIGN KEY(`recipeStep_id`) REFERENCES `recipeStep` ON DELETE CASCADE ON UPDATE CASCADE,
  354.     FOREIGN KEY(`recipeIngredient_id`) REFERENCES `recipeIngredient` ON DELETE CASCADE ON UPDATE CASCADE,
  355.     PRIMARY KEY(`recipeStep_id`,`recipeIngredient_id`)
  356. );
  357. CREATE TABLE IF NOT EXISTS `recipeStep_materialObject` (
  358.     `recipeStep_id` INTEGER NOT NULL,
  359.     `materialObject_id` INTEGER NOT NULL,
  360.     `position`  INTEGER NOT NULL,
  361.     `isPrimary` BOOLEAN NOT NULL DEFAULT 0,
  362.     PRIMARY KEY(`recipeStep_id`,`materialObject_id`),
  363.     FOREIGN KEY(`materialObject_id`) REFERENCES `materialObject` ON DELETE CASCADE ON UPDATE CASCADE,
  364.     FOREIGN KEY(`recipeStep_id`) REFERENCES `recipeStep` ON DELETE CASCADE ON UPDATE CASCADE
  365. );
  366. CREATE TABLE IF NOT EXISTS `recipeStepLangAttribute` (
  367.     `id`    INTEGER NOT NULL,
  368.     `type`  VARCHAR NOT NULL,
  369.     PRIMARY KEY(`id`)
  370. );
  371. CREATE TABLE IF NOT EXISTS `recipeStepLang` (
  372.     `recipeStep_id` INTEGER NOT NULL,
  373.     `recipeStepLangAttribute_id`    INTEGER NOT NULL,
  374.     `locale_id` INTEGER NOT NULL,
  375.     `text`  VARCHAR NOT NULL,
  376.     `sortKey`   BLOB NOT NULL,
  377.     FOREIGN KEY(`recipeStepLangAttribute_id`) REFERENCES `recipeStepLangAttribute` ON DELETE CASCADE ON UPDATE RESTRICT,
  378.     FOREIGN KEY(`recipeStep_id`) REFERENCES `recipeStep` ON DELETE CASCADE ON UPDATE CASCADE,
  379.     FOREIGN KEY(`locale_id`) REFERENCES `locale` ON DELETE CASCADE ON UPDATE RESTRICT,
  380.     PRIMARY KEY(`recipeStep_id`,`recipeStepLangAttribute_id`,`locale_id`)
  381. );
  382. CREATE TABLE IF NOT EXISTS `recipeStep` (
  383.     `id`    INTEGER NOT NULL,
  384.     `recipe_id` INTEGER NOT NULL,
  385.     `recipeGroup_id`    INTEGER,
  386.     `position`  INTEGER NOT NULL,
  387.     `displayNo` INTEGER NOT NULL,
  388.     PRIMARY KEY(`id`),
  389.     FOREIGN KEY(`recipeGroup_id`) REFERENCES `recipeGroup` ON DELETE CASCADE ON UPDATE CASCADE,
  390.     FOREIGN KEY(`recipe_id`) REFERENCES `recipe` ON DELETE CASCADE ON UPDATE CASCADE
  391. );
  392. CREATE TABLE IF NOT EXISTS `recipeSignatureType` (
  393.     `id`    INTEGER NOT NULL,
  394.     `type`  CLOB NOT NULL,
  395.     PRIMARY KEY(`id`)
  396. );
  397. CREATE TABLE IF NOT EXISTS `recipeSignature` (
  398.     `id`    INTEGER NOT NULL,
  399.     `recipe_id` INTEGER NOT NULL,
  400.     `recipeSignatureType_id`    INTEGER NOT NULL,
  401.     `recipeSignature`   CLOB NOT NULL,
  402.     PRIMARY KEY(`id`),
  403.     FOREIGN KEY(`recipeSignatureType_id`) REFERENCES `recipeSignatureType` ON DELETE CASCADE ON UPDATE RESTRICT,
  404.     FOREIGN KEY(`recipe_id`) REFERENCES `recipe` ON DELETE CASCADE ON UPDATE CASCADE
  405. );
  406. CREATE TABLE IF NOT EXISTS `recipeRecentlySyncedType` (
  407.     `id`    INTEGER NOT NULL,
  408.     `type`  CLOB NOT NULL,
  409.     PRIMARY KEY(`id`)
  410. );
  411. CREATE TABLE IF NOT EXISTS `recipeRecentlySynced` (
  412.     `id`    INTEGER NOT NULL,
  413.     `recipe_id` INTEGER NOT NULL,
  414.     `timestamp` INTEGER NOT NULL,
  415.     `recipeRecentlySyncedType_id`   INTEGER NOT NULL,
  416.     FOREIGN KEY(`recipeRecentlySyncedType_id`) REFERENCES `recipeRecentlySyncedType` ON DELETE CASCADE ON UPDATE RESTRICT,
  417.     PRIMARY KEY(`id`)
  418. );
  419. CREATE TABLE IF NOT EXISTS `recipePriceLang` (
  420.     `recipePrice_id`    INTEGER NOT NULL,
  421.     `locale_id` INTEGER NOT NULL,
  422.     `text`  VARCHAR NOT NULL,
  423.     `sortKey`   BLOB NOT NULL,
  424.     PRIMARY KEY(`recipePrice_id`,`locale_id`),
  425.     FOREIGN KEY(`recipePrice_id`) REFERENCES `recipePrice` ON DELETE CASCADE ON UPDATE RESTRICT,
  426.     FOREIGN KEY(`locale_id`) REFERENCES `locale` ON DELETE CASCADE ON UPDATE RESTRICT
  427. );
  428. CREATE TABLE IF NOT EXISTS `recipePrice` (
  429.     `id`    INTEGER NOT NULL,
  430.     `pricelevel`    VARCHAR NOT NULL,
  431.     PRIMARY KEY(`id`)
  432. );
  433. CREATE TABLE IF NOT EXISTS `recipePathType` (
  434.     `id`    INTEGER NOT NULL,
  435.     `type`  VARCHAR NOT NULL,
  436.     PRIMARY KEY(`id`)
  437. );
  438. CREATE TABLE IF NOT EXISTS `recipePathLang` (
  439.     `recipePath_id` INTEGER NOT NULL,
  440.     `locale_id` INTEGER NOT NULL,
  441.     `text`  CLOB NOT NULL,
  442.     `sortKey`   BLOB NOT NULL,
  443.     PRIMARY KEY(`recipePath_id`,`locale_id`),
  444.     FOREIGN KEY(`recipePath_id`) REFERENCES `recipePath` ON DELETE CASCADE ON UPDATE CASCADE,
  445.     FOREIGN KEY(`locale_id`) REFERENCES `locale` ON DELETE CASCADE ON UPDATE RESTRICT
  446. );
  447. CREATE TABLE IF NOT EXISTS `recipePathEntry` (
  448.     `id`    INTEGER NOT NULL,
  449.     `recipePath_id` INTEGER NOT NULL,
  450.     `recipeStep_id` INTEGER NOT NULL,
  451.     `position`  INTEGER NOT NULL,
  452.     `displayNo` INTEGER NOT NULL,
  453.     `isForceDisplay`    BOOLEAN NOT NULL,
  454.     PRIMARY KEY(`id`),
  455.     FOREIGN KEY(`recipePath_id`) REFERENCES `recipePath` ON DELETE CASCADE ON UPDATE CASCADE,
  456.     FOREIGN KEY(`recipeStep_id`) REFERENCES `recipeStep` ON DELETE CASCADE ON UPDATE CASCADE
  457. );
  458. CREATE TABLE IF NOT EXISTS `recipePath` (
  459.     `id`    INTEGER NOT NULL,
  460.     `recipe_id` INTEGER NOT NULL,
  461.     `recipePathType_id` INTEGER NOT NULL,
  462.     PRIMARY KEY(`id`),
  463.     FOREIGN KEY(`recipePathType_id`) REFERENCES `recipePathType` ON DELETE CASCADE ON UPDATE RESTRICT,
  464.     FOREIGN KEY(`recipe_id`) REFERENCES `recipe` ON DELETE CASCADE ON UPDATE CASCADE
  465. );
  466. CREATE TABLE IF NOT EXISTS `recipeNutritionalValueTypeLang` (
  467.     `recipeNutritionalValueType_id` INTEGER NOT NULL,
  468.     `locale_id` INTEGER NOT NULL,
  469.     `text`  VARCHAR NOT NULL,
  470.     `sortKey`   BLOB NOT NULL,
  471.     PRIMARY KEY(`recipeNutritionalValueType_id`,`locale_id`),
  472.     FOREIGN KEY(`locale_id`) REFERENCES `locale` ON DELETE CASCADE ON UPDATE RESTRICT,
  473.     FOREIGN KEY(`recipeNutritionalValueType_id`) REFERENCES `recipeNutritionalValueType` ON DELETE CASCADE ON UPDATE RESTRICT
  474. );
  475. CREATE TABLE IF NOT EXISTS `recipeNutritionalValueType` (
  476.     `id`    INTEGER NOT NULL,
  477.     `type`  VARCHAR NOT NULL,
  478.     PRIMARY KEY(`id`)
  479. );
  480. CREATE TABLE IF NOT EXISTS `recipeNutritionalValuePortionRange` (
  481.     `recipeNutritionalValue_id` INTEGER NOT NULL,
  482.     `rangeType_id`  INTEGER NOT NULL,
  483.     `portionAmountValue`    DECIMAL ( 8 , 3 ) NOT NULL,
  484.     FOREIGN KEY(`rangeType_id`) REFERENCES `rangeType` ON DELETE CASCADE ON UPDATE RESTRICT,
  485.     FOREIGN KEY(`recipeNutritionalValue_id`) REFERENCES `recipeNutritionalValue` ON DELETE CASCADE ON UPDATE CASCADE,
  486.     PRIMARY KEY(`recipeNutritionalValue_id`,`rangeType_id`)
  487. );
  488. CREATE TABLE IF NOT EXISTS `recipeNutritionalValueData` (
  489.     `recipeNutritionalValue_id` INTEGER NOT NULL,
  490.     `recipeNutritionalValueType_id` INTEGER NOT NULL,
  491.     `nutritionalValue`  DECIMAL ( 8 , 3 ) NOT NULL,
  492.     `unitNotation_id`   INTEGER NOT NULL,
  493.     FOREIGN KEY(`unitNotation_id`) REFERENCES `unitNotation` ON DELETE CASCADE ON UPDATE CASCADE,
  494.     FOREIGN KEY(`recipeNutritionalValue_id`) REFERENCES `recipeNutritionalValue` ON DELETE CASCADE ON UPDATE CASCADE,
  495.     FOREIGN KEY(`recipeNutritionalValueType_id`) REFERENCES `recipeNutritionalValueType` ON DELETE CASCADE ON UPDATE RESTRICT,
  496.     PRIMARY KEY(`recipeNutritionalValue_id`,`recipeNutritionalValueType_id`)
  497. );
  498. CREATE TABLE IF NOT EXISTS `recipeNutritionalValue` (
  499.     `id`    INTEGER NOT NULL,
  500.     `recipe_id` INTEGER NOT NULL,
  501.     `servingUnitNotation_id`    INTEGER NOT NULL,
  502.     FOREIGN KEY(`servingUnitNotation_id`) REFERENCES `unitNotation` ON DELETE CASCADE ON UPDATE CASCADE,
  503.     FOREIGN KEY(`recipe_id`) REFERENCES `recipe` ON DELETE CASCADE ON UPDATE CASCADE,
  504.     PRIMARY KEY(`id`)
  505. );
  506. CREATE TABLE IF NOT EXISTS `recipeNutritionLangAttribute` (
  507.     `id`    INTEGER NOT NULL,
  508.     `type`  VARCHAR NOT NULL,
  509.     PRIMARY KEY(`id`)
  510. );
  511. CREATE TABLE IF NOT EXISTS `recipeNutritionLang` (
  512.     `recipeNutrition_id`    INTEGER NOT NULL,
  513.     `recipeNutritionLangAttribute_id`   INTEGER NOT NULL,
  514.     `locale_id` INTEGER NOT NULL,
  515.     `text`  VARCHAR NOT NULL,
  516.     `sortKey`   BLOB NOT NULL,
  517.     FOREIGN KEY(`recipeNutritionLangAttribute_id`) REFERENCES `recipeNutritionLangAttribute` ON DELETE CASCADE ON UPDATE RESTRICT,
  518.     FOREIGN KEY(`locale_id`) REFERENCES `locale` ON DELETE CASCADE ON UPDATE RESTRICT,
  519.     FOREIGN KEY(`recipeNutrition_id`) REFERENCES `recipeNutritionalValue` ON DELETE CASCADE ON UPDATE CASCADE,
  520.     PRIMARY KEY(`recipeNutrition_id`,`recipeNutritionLangAttribute_id`,`locale_id`)
  521. );
  522. CREATE TABLE IF NOT EXISTS `recipeLinkType` (
  523.     `id`    INTEGER NOT NULL,
  524.     `type`  VARCHAR NOT NULL,
  525.     PRIMARY KEY(`id`)
  526. );
  527. CREATE TABLE IF NOT EXISTS `recipeLink` (
  528.     `targetRecipe_id`   INTEGER NOT NULL,
  529.     `sourceRecipe_id`   INTEGER NOT NULL,
  530.     `recipeLinkType_id` INTEGER NOT NULL,
  531.     FOREIGN KEY(`sourceRecipe_id`) REFERENCES `recipe` ON DELETE CASCADE ON UPDATE CASCADE,
  532.     FOREIGN KEY(`targetRecipe_id`) REFERENCES `recipe` ON DELETE CASCADE ON UPDATE CASCADE,
  533.     PRIMARY KEY(`targetRecipe_id`,`sourceRecipe_id`,`recipeLinkType_id`),
  534.     FOREIGN KEY(`recipeLinkType_id`) REFERENCES `recipeLinkType` ON DELETE CASCADE ON UPDATE RESTRICT
  535. );
  536. CREATE TABLE IF NOT EXISTS `recipeLangAttribute` (
  537.     `id`    INTEGER NOT NULL,
  538.     `type`  VARCHAR ( 50 ) NOT NULL,
  539.     PRIMARY KEY(`id`)
  540. );
  541. CREATE TABLE IF NOT EXISTS `recipeLang` (
  542.     `recipe_id` INTEGER NOT NULL,
  543.     `recipeLangAttribute_id`    INTEGER NOT NULL,
  544.     `locale_id` INTEGER NOT NULL,
  545.     `text`  VARCHAR NOT NULL,
  546.     `sortKey`   BLOB NOT NULL,
  547.     FOREIGN KEY(`locale_id`) REFERENCES `locale` ON DELETE CASCADE ON UPDATE RESTRICT,
  548.     PRIMARY KEY(`recipe_id`,`recipeLangAttribute_id`,`locale_id`),
  549.     FOREIGN KEY(`recipeLangAttribute_id`) REFERENCES `recipeLangAttribute` ON DELETE CASCADE ON UPDATE RESTRICT,
  550.     FOREIGN KEY(`recipe_id`) REFERENCES `recipe` ON DELETE CASCADE ON UPDATE CASCADE
  551. );
  552. CREATE TABLE IF NOT EXISTS `recipeIngredientRange` (
  553.     `recipeIngredient_id`   INTEGER NOT NULL,
  554.     `rangeType_id`  INTEGER NOT NULL,
  555.     `ingredientAmountValue` DECIMAL ( 8 , 3 ) NOT NULL,
  556.     FOREIGN KEY(`recipeIngredient_id`) REFERENCES `recipeIngredient` ON DELETE CASCADE ON UPDATE CASCADE,
  557.     FOREIGN KEY(`rangeType_id`) REFERENCES `rangeType` ON DELETE CASCADE ON UPDATE RESTRICT,
  558.     PRIMARY KEY(`recipeIngredient_id`,`rangeType_id`)
  559. );
  560. CREATE TABLE IF NOT EXISTS `recipeIngredient` (
  561.     `id`    INTEGER NOT NULL,
  562.     `recipe_id` INTEGER NOT NULL,
  563.     `ingredientNotation_id` INTEGER NOT NULL,
  564.     `ingredientPreparation_id`  INTEGER,
  565.     `isCommaSeparated`  BOOLEAN NOT NULL,
  566.     `recipeGroup_id`    INTEGER,
  567.     `position`  INTEGER NOT NULL,
  568.     `priority`  INTEGER NOT NULL,
  569.     `unitNotation_id`   INTEGER,
  570.     `isOptional`    BOOLEAN NOT NULL DEFAULT 0,
  571.     FOREIGN KEY(`ingredientPreparation_id`) REFERENCES `ingredientPreparation` ON DELETE CASCADE ON UPDATE CASCADE,
  572.     PRIMARY KEY(`id`),
  573.     FOREIGN KEY(`recipe_id`) REFERENCES `recipe` ON DELETE CASCADE ON UPDATE CASCADE,
  574.     FOREIGN KEY(`unitNotation_id`) REFERENCES `unitNotation` ON DELETE CASCADE ON UPDATE CASCADE,
  575.     FOREIGN KEY(`ingredientNotation_id`) REFERENCES `ingredientNotation` ON DELETE CASCADE ON UPDATE CASCADE,
  576.     FOREIGN KEY(`recipeGroup_id`) REFERENCES `recipeGroup` ON DELETE CASCADE ON UPDATE CASCADE
  577. );
  578. CREATE TABLE IF NOT EXISTS `recipeImport` (
  579.     `id`    INTEGER NOT NULL,
  580.     `recipe_id` INTEGER NOT NULL,
  581.     `insertStatement`   CLOB NOT NULL,
  582.     PRIMARY KEY(`id`),
  583.     FOREIGN KEY(`recipe_id`) REFERENCES `recipe` ON DELETE CASCADE ON UPDATE CASCADE
  584. );
  585. CREATE TABLE IF NOT EXISTS `recipeGroupLang` (
  586.     `recipeGroup_id`    INTEGER NOT NULL,
  587.     `locale_id` INTEGER NOT NULL,
  588.     `text`  VARCHAR NOT NULL,
  589.     `sortKey`   BLOB NOT NULL,
  590.     PRIMARY KEY(`recipeGroup_id`,`locale_id`),
  591.     FOREIGN KEY(`recipeGroup_id`) REFERENCES `recipeGroup` ON DELETE CASCADE ON UPDATE CASCADE,
  592.     FOREIGN KEY(`locale_id`) REFERENCES `locale` ON DELETE CASCADE ON UPDATE CASCADE
  593. );
  594. CREATE TABLE IF NOT EXISTS `recipeGroup` (
  595.     `id`    INTEGER NOT NULL,
  596.     PRIMARY KEY(`id`)
  597. );
  598. CREATE TABLE IF NOT EXISTS `recipeDifficultyLang` (
  599.     `recipeDifficulty_id`   INTEGER NOT NULL,
  600.     `locale_id` INTEGER NOT NULL,
  601.     `text`  VARCHAR NOT NULL,
  602.     `sortKey`   BLOB NOT NULL,
  603.     FOREIGN KEY(`recipeDifficulty_id`) REFERENCES `recipeDifficulty` ON DELETE CASCADE ON UPDATE RESTRICT,
  604.     FOREIGN KEY(`locale_id`) REFERENCES `locale` ON DELETE CASCADE ON UPDATE RESTRICT,
  605.     PRIMARY KEY(`recipeDifficulty_id`,`locale_id`)
  606. );
  607. CREATE TABLE IF NOT EXISTS `recipeDifficulty` (
  608.     `id`    INTEGER NOT NULL,
  609.     `difficulty`    VARCHAR NOT NULL,
  610.     PRIMARY KEY(`id`)
  611. );
  612. CREATE TABLE IF NOT EXISTS `recipeCategory_materialObject` (
  613.     `recipeCategory_id` INTEGER NOT NULL,
  614.     `materialObject_id` INTEGER NOT NULL,
  615.     `position`  INTEGER NOT NULL,
  616.     `isPrimary` BOOLEAN NOT NULL DEFAULT 0,
  617.     FOREIGN KEY(`materialObject_id`) REFERENCES `materialObject` ON DELETE CASCADE ON UPDATE CASCADE,
  618.     FOREIGN KEY(`recipeCategory_id`) REFERENCES `recipeCategory` ON DELETE CASCADE ON UPDATE CASCADE,
  619.     PRIMARY KEY(`recipeCategory_id`,`materialObject_id`)
  620. );
  621. CREATE TABLE IF NOT EXISTS `recipeCategoryLangAttribute` (
  622.     `id`    INTEGER NOT NULL,
  623.     `type`  VARCHAR NOT NULL,
  624.     PRIMARY KEY(`id`)
  625. );
  626. CREATE TABLE IF NOT EXISTS `recipeCategoryLang` (
  627.     `recipeCategory_id` INTEGER NOT NULL,
  628.     `recipeCategoryLangAttribute_id`    INTEGER NOT NULL,
  629.     `locale_id` INTEGER NOT NULL,
  630.     `text`  VARCHAR NOT NULL,
  631.     `sortKey`   BLOB NOT NULL,
  632.     FOREIGN KEY(`recipeCategoryLangAttribute_id`) REFERENCES `recipeCategoryLangAttribute` ON DELETE CASCADE ON UPDATE RESTRICT,
  633.     PRIMARY KEY(`recipeCategory_id`,`recipeCategoryLangAttribute_id`,`locale_id`),
  634.     FOREIGN KEY(`locale_id`) REFERENCES `locale` ON DELETE CASCADE ON UPDATE RESTRICT,
  635.     FOREIGN KEY(`recipeCategory_id`) REFERENCES `recipeCategory` ON DELETE CASCADE ON UPDATE CASCADE
  636. );
  637. CREATE TABLE IF NOT EXISTS `recipeCategory` (
  638.     `id`    INTEGER NOT NULL,
  639.     `uid`   VARCHAR NOT NULL,
  640.     `position`  INTEGER NOT NULL,
  641.     `isPrimary` BOOLEAN NOT NULL,
  642.     `lft`   INTEGER NOT NULL,
  643.     `rgt`   INTEGER NOT NULL,
  644.     PRIMARY KEY(`id`)
  645. );
  646. CREATE TABLE IF NOT EXISTS `recipe` (
  647.     `id`    INTEGER NOT NULL,
  648.     `uid`   VARCHAR NOT NULL,
  649.     `originalTitle` VARCHAR NOT NULL,
  650.     `year`  INTEGER NOT NULL,
  651.     `servingQuantity`   DECIMAL ( 8 , 3 ) NOT NULL,
  652.     `servingUnitNotation_id`    INTEGER,
  653.     `recipeDifficulty_id`   INTEGER NOT NULL DEFAULT 0,
  654.     `recipePrice_id`    INTEGER NOT NULL DEFAULT 0,
  655.     `version`   DECIMAL ( 8 , 2 ) NOT NULL,
  656.     `createdts` INTEGER NOT NULL,
  657.     `lastchangedts` INTEGER NOT NULL,
  658.     `isDeleted` BOOLEAN NOT NULL,
  659.     FOREIGN KEY(`recipePrice_id`) REFERENCES `recipePrice` ON DELETE CASCADE ON UPDATE RESTRICT,
  660.     FOREIGN KEY(`recipeDifficulty_id`) REFERENCES `recipeDifficulty` ON DELETE CASCADE ON UPDATE RESTRICT,
  661.     FOREIGN KEY(`servingUnitNotation_id`) REFERENCES `unitNotation` ON DELETE CASCADE ON UPDATE CASCADE,
  662.     PRIMARY KEY(`id`)
  663. );
  664. CREATE TABLE IF NOT EXISTS `rangeType` (
  665.     `id`    INTEGER NOT NULL,
  666.     `type`  VARCHAR NOT NULL,
  667.     PRIMARY KEY(`id`)
  668. );
  669. CREATE TABLE IF NOT EXISTS `project_projectCategory` (
  670.     `project_id`    INTEGER NOT NULL,
  671.     `projectCategory_id`    INTEGER NOT NULL,
  672.     FOREIGN KEY(`projectCategory_id`) REFERENCES `projectCategory` ON DELETE CASCADE ON UPDATE CASCADE,
  673.     PRIMARY KEY(`project_id`,`projectCategory_id`),
  674.     FOREIGN KEY(`project_id`) REFERENCES `project` ON DELETE CASCADE ON UPDATE CASCADE
  675. );
  676. CREATE TABLE IF NOT EXISTS `project_materialObject` (
  677.     `project_id`    INTEGER NOT NULL,
  678.     `materialObject_id` INTEGER NOT NULL,
  679.     `position`  INTEGER NOT NULL,
  680.     `isPrimary` BOOLEAN NOT NULL,
  681.     PRIMARY KEY(`project_id`,`materialObject_id`),
  682.     FOREIGN KEY(`materialObject_id`) REFERENCES `materialObject` ON DELETE CASCADE ON UPDATE CASCADE,
  683.     FOREIGN KEY(`project_id`) REFERENCES `project` ON DELETE CASCADE ON UPDATE CASCADE
  684. );
  685. CREATE TABLE IF NOT EXISTS `project_company` (
  686.     `project_id`    INTEGER NOT NULL,
  687.     `company_id`    INTEGER NOT NULL,
  688.     PRIMARY KEY(`project_id`,`company_id`),
  689.     FOREIGN KEY(`project_id`) REFERENCES `project` ON DELETE CASCADE ON UPDATE CASCADE,
  690.     FOREIGN KEY(`company_id`) REFERENCES `company` ON DELETE CASCADE ON UPDATE CASCADE
  691. );
  692. CREATE TABLE IF NOT EXISTS `projectType` (
  693.     `id`    INTEGER NOT NULL,
  694.     `type`  VARCHAR NOT NULL,
  695.     PRIMARY KEY(`id`)
  696. );
  697. CREATE TABLE IF NOT EXISTS `projectLinkType` (
  698.     `id`    INTEGER NOT NULL,
  699.     `type`  VARCHAR NOT NULL,
  700.     PRIMARY KEY(`id`)
  701. );
  702. CREATE TABLE IF NOT EXISTS `projectLink` (
  703.     `targetProject_id`  INTEGER NOT NULL,
  704.     `sourceProject_id`  INTEGER NOT NULL,
  705.     `projectLinkType_id`    INTEGER NOT NULL,
  706.     FOREIGN KEY(`projectLinkType_id`) REFERENCES `projectLinkType` ON DELETE CASCADE ON UPDATE RESTRICT,
  707.     PRIMARY KEY(`targetProject_id`,`sourceProject_id`,`projectLinkType_id`),
  708.     FOREIGN KEY(`targetProject_id`) REFERENCES `project` ON DELETE CASCADE ON UPDATE CASCADE,
  709.     FOREIGN KEY(`sourceProject_id`) REFERENCES `project` ON DELETE CASCADE ON UPDATE CASCADE
  710. );
  711. CREATE TABLE IF NOT EXISTS `projectLangAttribute` (
  712.     `id`    INTEGER NOT NULL,
  713.     `type`  VARCHAR NOT NULL,
  714.     PRIMARY KEY(`id`)
  715. );
  716. CREATE TABLE IF NOT EXISTS `projectLang` (
  717.     `project_id`    INTEGER NOT NULL,
  718.     `projectLangAttribute_id`   INTEGER NOT NULL,
  719.     `locale_id` INTEGER NOT NULL,
  720.     `text`  VARCHAR NOT NULL,
  721.     `sortKey`   BLOB NOT NULL,
  722.     PRIMARY KEY(`project_id`,`projectLangAttribute_id`,`locale_id`),
  723.     FOREIGN KEY(`locale_id`) REFERENCES `locale` ON DELETE CASCADE ON UPDATE RESTRICT,
  724.     FOREIGN KEY(`projectLangAttribute_id`) REFERENCES `projectLangAttribute` ON DELETE CASCADE ON UPDATE RESTRICT,
  725.     FOREIGN KEY(`project_id`) REFERENCES `project` ON DELETE CASCADE ON UPDATE CASCADE
  726. );
  727. CREATE TABLE IF NOT EXISTS `projectEntry_materialObject` (
  728.     `projectEntry_id`   INTEGER NOT NULL,
  729.     `materialObject_id` INTEGER NOT NULL,
  730.     `position`  INTEGER NOT NULL,
  731.     `isPrimary` BOOLEAN NOT NULL,
  732.     FOREIGN KEY(`materialObject_id`) REFERENCES `materialObject` ON DELETE CASCADE ON UPDATE CASCADE,
  733.     PRIMARY KEY(`projectEntry_id`,`materialObject_id`),
  734.     FOREIGN KEY(`projectEntry_id`) REFERENCES `projectEntry` ON DELETE CASCADE ON UPDATE CASCADE
  735. );
  736. CREATE TABLE IF NOT EXISTS `projectEntryTitleLang` (
  737.     `projectEntryTitle_id`  INTEGER NOT NULL,
  738.     `locale_id` INTEGER NOT NULL,
  739.     `title` VARCHAR NOT NULL,
  740.     `sortKey`   BLOB NOT NULL,
  741.     FOREIGN KEY(`projectEntryTitle_id`) REFERENCES `projectEntryTitle` ON DELETE CASCADE ON UPDATE CASCADE,
  742.     PRIMARY KEY(`projectEntryTitle_id`,`locale_id`),
  743.     FOREIGN KEY(`locale_id`) REFERENCES `locale` ON DELETE CASCADE ON UPDATE RESTRICT
  744. );
  745. CREATE TABLE IF NOT EXISTS `projectEntryTitle` (
  746.     `id`    INTEGER NOT NULL,
  747.     PRIMARY KEY(`id`),
  748.     FOREIGN KEY(`id`) REFERENCES `projectEntry` ON DELETE CASCADE ON UPDATE CASCADE
  749. );
  750. CREATE TABLE IF NOT EXISTS `projectEntryRecipe` (
  751.     `id`    INTEGER NOT NULL,
  752.     `recipe_id` INTEGER NOT NULL,
  753.     FOREIGN KEY(`recipe_id`) REFERENCES `recipe` ON DELETE CASCADE ON UPDATE CASCADE,
  754.     PRIMARY KEY(`id`),
  755.     FOREIGN KEY(`id`) REFERENCES `projectEntry` ON DELETE CASCADE ON UPDATE CASCADE
  756. );
  757. CREATE TABLE IF NOT EXISTS `projectEntry` (
  758.     `id`    INTEGER NOT NULL,
  759.     `project_id`    INTEGER NOT NULL,
  760.     `lft`   INTEGER NOT NULL,
  761.     `rgt`   INTEGER NOT NULL,
  762.     PRIMARY KEY(`id`),
  763.     FOREIGN KEY(`project_id`) REFERENCES `project` ON DELETE CASCADE ON UPDATE CASCADE
  764. );
  765. CREATE TABLE IF NOT EXISTS `projectCategoryLang` (
  766.     `projectCategory_id`    INTEGER NOT NULL,
  767.     `locale_id` INTEGER NOT NULL,
  768.     `text`  VARCHAR NOT NULL,
  769.     `sortKey`   BLOB NOT NULL,
  770.     PRIMARY KEY(`projectCategory_id`,`locale_id`),
  771.     FOREIGN KEY(`locale_id`) REFERENCES `locale` ON DELETE CASCADE ON UPDATE RESTRICT,
  772.     FOREIGN KEY(`projectCategory_id`) REFERENCES `projectCategory` ON DELETE CASCADE ON UPDATE CASCADE
  773. );
  774. CREATE TABLE IF NOT EXISTS `projectCategory` (
  775.     `id`    INTEGER NOT NULL,
  776.     `uid`   VARCHAR NOT NULL,
  777.     `position`  INTEGER NOT NULL,
  778.     `lft`   INTEGER NOT NULL,
  779.     `rgt`   INTEGER NOT NULL,
  780.     PRIMARY KEY(`id`)
  781. );
  782. CREATE TABLE IF NOT EXISTS `project` (
  783.     `id`    INTEGER NOT NULL,
  784.     `uid`   VARCHAR NOT NULL,
  785.     `description`   VARCHAR NOT NULL,
  786.     `projectType_id`    INTEGER NOT NULL,
  787.     `nofRecipesPlanned` INTEGER NOT NULL,
  788.     `isInternal`    BOOLEAN NOT NULL,
  789.     `isInternational`   BOOLEAN NOT NULL,
  790.     `isDeleted` BOOLEAN NOT NULL,
  791.     `createdts` INTEGER NOT NULL,
  792.     `lastchangedts` INTEGER NOT NULL,
  793.     FOREIGN KEY(`projectType_id`) REFERENCES `projectType` ON DELETE CASCADE ON UPDATE RESTRICT,
  794.     PRIMARY KEY(`id`)
  795. );
  796. CREATE TABLE IF NOT EXISTS `material_materialStorageLocation` (
  797.     `material_id`   INTEGER NOT NULL,
  798.     `materialStorageLocation_id`    INTEGER NOT NULL,
  799.     PRIMARY KEY(`material_id`,`materialStorageLocation_id`),
  800.     FOREIGN KEY(`material_id`) REFERENCES `material` ON DELETE CASCADE ON UPDATE CASCADE,
  801.     FOREIGN KEY(`materialStorageLocation_id`) REFERENCES `materialStorageLocation` ON DELETE CASCADE ON UPDATE CASCADE
  802. );
  803. CREATE TABLE IF NOT EXISTS `material_materialFlag` (
  804.     `material_id`   INTEGER NOT NULL,
  805.     `materialFlag_id`   INTEGER NOT NULL,
  806.     FOREIGN KEY(`material_id`) REFERENCES `material` ON DELETE CASCADE ON UPDATE CASCADE,
  807.     FOREIGN KEY(`materialFlag_id`) REFERENCES `materialFlag` ON DELETE CASCADE ON UPDATE RESTRICT,
  808.     PRIMARY KEY(`material_id`,`materialFlag_id`)
  809. );
  810. CREATE TABLE IF NOT EXISTS `material_company` (
  811.     `material_id`   INTEGER NOT NULL,
  812.     `company_id`    INTEGER NOT NULL,
  813.     PRIMARY KEY(`material_id`,`company_id`),
  814.     FOREIGN KEY(`company_id`) REFERENCES `company` ON DELETE CASCADE ON UPDATE CASCADE,
  815.     FOREIGN KEY(`material_id`) REFERENCES `material` ON DELETE CASCADE ON UPDATE CASCADE
  816. );
  817. CREATE TABLE IF NOT EXISTS `materialValueType` (
  818.     `id`    INTEGER NOT NULL,
  819.     `type`  VARCHAR NOT NULL,
  820.     PRIMARY KEY(`id`)
  821. );
  822. CREATE TABLE IF NOT EXISTS `materialValue` (
  823.     `materialObject_id` INTEGER NOT NULL,
  824.     `materialType_id`   INTEGER NOT NULL,
  825.     `materialValueType_id`  INTEGER NOT NULL,
  826.     `value` VARCHAR NOT NULL,
  827.     FOREIGN KEY(`materialObject_id`) REFERENCES `materialObject` ON DELETE CASCADE ON UPDATE CASCADE,
  828.     PRIMARY KEY(`materialObject_id`,`materialType_id`,`materialValueType_id`),
  829.     FOREIGN KEY(`materialValueType_id`,`materialType_id`) REFERENCES `materialType_materialValueType`(`materialValueType_id`,`materialType_id`) ON DELETE CASCADE ON UPDATE CASCADE
  830. );
  831. CREATE TABLE IF NOT EXISTS `materialType_materialValueType` (
  832.     `materialType_id`   INTEGER NOT NULL,
  833.     `materialValueType_id`  INTEGER NOT NULL,
  834.     FOREIGN KEY(`materialValueType_id`) REFERENCES `materialValueType` ON DELETE CASCADE ON UPDATE RESTRICT,
  835.     FOREIGN KEY(`materialType_id`) REFERENCES `materialType` ON DELETE CASCADE ON UPDATE RESTRICT,
  836.     PRIMARY KEY(`materialType_id`,`materialValueType_id`)
  837. );
  838. CREATE TABLE IF NOT EXISTS `materialType` (
  839.     `id`    INTEGER NOT NULL,
  840.     `type`  VARCHAR NOT NULL,
  841.     PRIMARY KEY(`id`)
  842. );
  843. CREATE TABLE IF NOT EXISTS `materialStorageLocationType` (
  844.     `id`    INTEGER NOT NULL,
  845.     `type`  VARCHAR NOT NULL,
  846.     PRIMARY KEY(`id`)
  847. );
  848. CREATE TABLE IF NOT EXISTS `materialStorageLocation` (
  849.     `id`    INTEGER NOT NULL,
  850.     `materialStorageLocationType_id`    INTEGER NOT NULL,
  851.     `source`    VARCHAR NOT NULL,
  852.     PRIMARY KEY(`id`),
  853.     FOREIGN KEY(`materialStorageLocationType_id`) REFERENCES `materialStorageLocationType` ON DELETE CASCADE ON UPDATE RESTRICT
  854. );
  855. CREATE TABLE IF NOT EXISTS `materialOrphans` (
  856.     `id`    INTEGER NOT NULL,
  857.     `value` CLOB NOT NULL,
  858.     PRIMARY KEY(`id`)
  859. );
  860. CREATE TABLE IF NOT EXISTS `materialObject_materialObjectFlag` (
  861.     `materialObject_id` INTEGER NOT NULL,
  862.     `materialObjectFlag_id` INTEGER NOT NULL,
  863.     FOREIGN KEY(`materialObjectFlag_id`) REFERENCES `materialObjectFlag` ON DELETE CASCADE ON UPDATE RESTRICT,
  864.     FOREIGN KEY(`materialObject_id`) REFERENCES `materialObject` ON DELETE CASCADE ON UPDATE CASCADE,
  865.     PRIMARY KEY(`materialObject_id`,`materialObjectFlag_id`)
  866. );
  867. CREATE TABLE IF NOT EXISTS `materialObjectLangAttribute` (
  868.     `id`    INTEGER NOT NULL,
  869.     `type`  VARCHAR NOT NULL,
  870.     PRIMARY KEY(`id`)
  871. );
  872. CREATE TABLE IF NOT EXISTS `materialObjectLang` (
  873.     `materialObject_id` INTEGER NOT NULL,
  874.     `materialObjectLangAttribute_id`    INTEGER NOT NULL,
  875.     `locale_id` INTEGER NOT NULL,
  876.     `text`  VARCHAR NOT NULL,
  877.     `sortKey`   BLOB NOT NULL,
  878.     FOREIGN KEY(`materialObject_id`) REFERENCES `materialObject` ON DELETE CASCADE ON UPDATE CASCADE,
  879.     PRIMARY KEY(`materialObject_id`,`materialObjectLangAttribute_id`,`locale_id`),
  880.     FOREIGN KEY(`materialObjectLangAttribute_id`) REFERENCES `materialObjectLangAttribute` ON DELETE CASCADE ON UPDATE RESTRICT,
  881.     FOREIGN KEY(`locale_id`) REFERENCES `locale` ON DELETE CASCADE ON UPDATE RESTRICT
  882. );
  883. CREATE TABLE IF NOT EXISTS `materialObjectFlag` (
  884.     `id`    INTEGER NOT NULL,
  885.     `flag`  VARCHAR NOT NULL,
  886.     PRIMARY KEY(`id`)
  887. );
  888. CREATE TABLE IF NOT EXISTS `materialObject` (
  889.     `id`    INTEGER NOT NULL,
  890.     `material_id`   INTEGER NOT NULL,
  891.     FOREIGN KEY(`material_id`) REFERENCES `material` ON DELETE CASCADE ON UPDATE CASCADE,
  892.     PRIMARY KEY(`id`)
  893. );
  894. CREATE TABLE IF NOT EXISTS `materialFlag` (
  895.     `id`    INTEGER NOT NULL,
  896.     `flag`  VARCHAR NOT NULL,
  897.     PRIMARY KEY(`id`)
  898. );
  899. CREATE TABLE IF NOT EXISTS `material` (
  900.     `id`    INTEGER NOT NULL,
  901.     `materialType_id`   INTEGER NOT NULL,
  902.     `mdbId` INTEGER,
  903.     PRIMARY KEY(`id`),
  904.     FOREIGN KEY(`materialType_id`) REFERENCES `materialType` ON DELETE CASCADE ON UPDATE RESTRICT
  905. );
  906. CREATE TABLE IF NOT EXISTS `maintenanceRecipeHash` (
  907.     `maintenanceCloudSyncHash_id`   INTEGER NOT NULL,
  908.     `recipe_id` INTEGER NOT NULL,
  909.     PRIMARY KEY(`maintenanceCloudSyncHash_id`),
  910.     FOREIGN KEY(`maintenanceCloudSyncHash_id`) REFERENCES `maintenanceCloudSyncHash` ON DELETE CASCADE ON UPDATE CASCADE,
  911.     FOREIGN KEY(`recipe_id`) REFERENCES `recipe` ON DELETE CASCADE ON UPDATE CASCADE
  912. );
  913. CREATE TABLE IF NOT EXISTS `maintenanceRecipeCollectionHash` (
  914.     `maintenanceCloudSyncHash_id`   INTEGER NOT NULL,
  915.     `project_id`    INTEGER NOT NULL,
  916.     FOREIGN KEY(`project_id`) REFERENCES `project` ON DELETE CASCADE ON UPDATE CASCADE,
  917.     PRIMARY KEY(`maintenanceCloudSyncHash_id`),
  918.     FOREIGN KEY(`maintenanceCloudSyncHash_id`) REFERENCES `maintenanceCloudSyncHash` ON DELETE CASCADE ON UPDATE CASCADE
  919. );
  920. CREATE TABLE IF NOT EXISTS `maintenanceMediaHash` (
  921.     `maintenanceCloudSyncHash_id`   INTEGER NOT NULL,
  922.     `fileURI`   CLOB NOT NULL,
  923.     PRIMARY KEY(`maintenanceCloudSyncHash_id`),
  924.     FOREIGN KEY(`maintenanceCloudSyncHash_id`) REFERENCES `maintenanceCloudSyncHash` ON DELETE CASCADE ON UPDATE CASCADE
  925. );
  926. CREATE TABLE IF NOT EXISTS `maintenanceHashType` (
  927.     `id`    INTEGER NOT NULL,
  928.     `type`  CLOB NOT NULL,
  929.     PRIMARY KEY(`id`)
  930. );
  931. CREATE TABLE IF NOT EXISTS `maintenanceCloudSyncHash` (
  932.     `id`    INTEGER NOT NULL,
  933.     `hash`  CLOB NOT NULL,
  934.     `maintenanceHashType_id`    INTEGER NOT NULL,
  935.     PRIMARY KEY(`id`),
  936.     FOREIGN KEY(`maintenanceHashType_id`) REFERENCES `maintenanceHashType` ON DELETE CASCADE ON UPDATE RESTRICT
  937. );
  938. CREATE TABLE IF NOT EXISTS `locale` (
  939.     `id`    INTEGER NOT NULL,
  940.     `country_id`    INTEGER NOT NULL,
  941.     `language_id`   INTEGER NOT NULL,
  942.     `lft`   INTEGER NOT NULL,
  943.     `rgt`   INTEGER NOT NULL,
  944.     PRIMARY KEY(`id`),
  945.     FOREIGN KEY(`language_id`) REFERENCES `language` ON DELETE CASCADE ON UPDATE RESTRICT,
  946.     FOREIGN KEY(`country_id`) REFERENCES `country` ON DELETE CASCADE ON UPDATE RESTRICT
  947. );
  948. CREATE TABLE IF NOT EXISTS `languageLang` (
  949.     `language_id`   INTEGER NOT NULL,
  950.     `locale_id` INTEGER NOT NULL,
  951.     `text`  VARCHAR ( 50 ) NOT NULL,
  952.     `sortKey`   BLOB NOT NULL,
  953.     FOREIGN KEY(`locale_id`) REFERENCES `locale` ON DELETE CASCADE ON UPDATE RESTRICT,
  954.     PRIMARY KEY(`language_id`,`locale_id`),
  955.     FOREIGN KEY(`language_id`) REFERENCES `language` ON DELETE CASCADE ON UPDATE RESTRICT
  956. );
  957. CREATE TABLE IF NOT EXISTS `language` (
  958.     `id`    INTEGER NOT NULL,
  959.     `code`  VARCHAR ( 2 ) NOT NULL,
  960.     PRIMARY KEY(`id`)
  961. );
  962. CREATE TABLE IF NOT EXISTS `ingredient_materialObject` (
  963.     `ingredient_id` INTEGER NOT NULL,
  964.     `materialObject_id` INTEGER NOT NULL,
  965.     `position`  INTEGER NOT NULL,
  966.     `isPrimary` BOOLEAN NOT NULL DEFAULT 0,
  967.     FOREIGN KEY(`ingredient_id`) REFERENCES `ingredient` ON DELETE CASCADE ON UPDATE CASCADE,
  968.     FOREIGN KEY(`materialObject_id`) REFERENCES `materialObject` ON DELETE CASCADE ON UPDATE CASCADE,
  969.     PRIMARY KEY(`ingredient_id`,`materialObject_id`)
  970. );
  971. CREATE TABLE IF NOT EXISTS `ingredient_ingredientFoodCategory` (
  972.     `ingredient_id` INTEGER NOT NULL,
  973.     `ingredientFoodCategory_id` INTEGER NOT NULL,
  974.     FOREIGN KEY(`ingredientFoodCategory_id`) REFERENCES `ingredientFoodCategory` ON DELETE CASCADE ON UPDATE CASCADE,
  975.     PRIMARY KEY(`ingredient_id`,`ingredientFoodCategory_id`),
  976.     FOREIGN KEY(`ingredient_id`) REFERENCES `ingredient` ON DELETE CASCADE ON UPDATE CASCADE
  977. );
  978. CREATE TABLE IF NOT EXISTS `ingredient_country_ingredientFlag` (
  979.     `ingredient_id` INTEGER NOT NULL,
  980.     `country_id`    INTEGER NOT NULL,
  981.     `ingredientFlag_id` INTEGER NOT NULL,
  982.     FOREIGN KEY(`country_id`) REFERENCES `country` ON DELETE CASCADE ON UPDATE RESTRICT,
  983.     FOREIGN KEY(`ingredientFlag_id`) REFERENCES `ingredientFlag` ON DELETE CASCADE ON UPDATE RESTRICT,
  984.     FOREIGN KEY(`ingredient_id`) REFERENCES `ingredient` ON DELETE CASCADE ON UPDATE CASCADE,
  985.     PRIMARY KEY(`ingredient_id`,`country_id`,`ingredientFlag_id`)
  986. );
  987. CREATE TABLE IF NOT EXISTS `ingredient_baseRecipe` (
  988.     `ingredient_id` INTEGER NOT NULL,
  989.     `recipe_id` INTEGER NOT NULL,
  990.     FOREIGN KEY(`recipe_id`) REFERENCES `recipe` ON DELETE CASCADE ON UPDATE CASCADE,
  991.     PRIMARY KEY(`ingredient_id`,`recipe_id`),
  992.     FOREIGN KEY(`ingredient_id`) REFERENCES `ingredient` ON DELETE CASCADE ON UPDATE CASCADE
  993. );
  994. CREATE TABLE IF NOT EXISTS `ingredientPreparationLangAttribute` (
  995.     `id`    INTEGER NOT NULL,
  996.     `type`  VARCHAR NOT NULL,
  997.     PRIMARY KEY(`id`)
  998. );
  999. CREATE TABLE IF NOT EXISTS `ingredientPreparationLang` (
  1000.     `ingredientPreparation_id`  INTEGER NOT NULL,
  1001.     `ingredientPreparationLangAttribute_id` INTEGER NOT NULL,
  1002.     `locale_id` INTEGER NOT NULL,
  1003.     `text`  VARCHAR NOT NULL,
  1004.     `sortKey`   BLOB NOT NULL,
  1005.     FOREIGN KEY(`ingredientPreparation_id`) REFERENCES `ingredientPreparation` ON DELETE CASCADE ON UPDATE CASCADE,
  1006.     FOREIGN KEY(`ingredientPreparationLangAttribute_id`) REFERENCES `ingredientPreparationLangAttribute` ON DELETE CASCADE ON UPDATE RESTRICT,
  1007.     FOREIGN KEY(`locale_id`) REFERENCES `locale` ON DELETE CASCADE ON UPDATE RESTRICT,
  1008.     PRIMARY KEY(`ingredientPreparation_id`,`ingredientPreparationLangAttribute_id`,`locale_id`)
  1009. );
  1010. CREATE TABLE IF NOT EXISTS `ingredientPreparation` (
  1011.     `id`    INTEGER NOT NULL,
  1012.     `ingredient_id` INTEGER NOT NULL,
  1013.     FOREIGN KEY(`ingredient_id`) REFERENCES `ingredient` ON DELETE CASCADE ON UPDATE CASCADE,
  1014.     PRIMARY KEY(`id`)
  1015. );
  1016. CREATE TABLE IF NOT EXISTS `ingredientNotationPriority` (
  1017.     `id`    INTEGER NOT NULL,
  1018.     `text`  VARCHAR NOT NULL,
  1019.     PRIMARY KEY(`id`)
  1020. );
  1021. CREATE TABLE IF NOT EXISTS `ingredientNotationLangAttribute` (
  1022.     `id`    INTEGER NOT NULL,
  1023.     `type`  VARCHAR NOT NULL,
  1024.     PRIMARY KEY(`id`)
  1025. );
  1026. CREATE TABLE IF NOT EXISTS `ingredientNotationLang` (
  1027.     `ingredientNotation_id` INTEGER NOT NULL,
  1028.     `ingredientNotationLangAttribute_id`    INTEGER NOT NULL,
  1029.     `locale_id` INTEGER NOT NULL,
  1030.     `text`  VARCHAR NOT NULL,
  1031.     `sortKey`   BLOB NOT NULL,
  1032.     FOREIGN KEY(`locale_id`) REFERENCES `locale` ON DELETE CASCADE ON UPDATE RESTRICT,
  1033.     PRIMARY KEY(`ingredientNotation_id`,`ingredientNotationLangAttribute_id`,`locale_id`),
  1034.     FOREIGN KEY(`ingredientNotation_id`) REFERENCES `ingredientNotation` ON DELETE CASCADE ON UPDATE CASCADE,
  1035.     FOREIGN KEY(`ingredientNotationLangAttribute_id`) REFERENCES `ingredientNotationLangAttribute` ON DELETE CASCADE ON UPDATE RESTRICT
  1036. );
  1037. CREATE TABLE IF NOT EXISTS `ingredientNotation` (
  1038.     `id`    INTEGER NOT NULL,
  1039.     `ingredient_id` INTEGER NOT NULL,
  1040.     `ingredientNotationPriority_id` INTEGER NOT NULL,
  1041.     FOREIGN KEY(`ingredientNotationPriority_id`) REFERENCES `ingredientNotationPriority` ON DELETE CASCADE ON UPDATE RESTRICT,
  1042.     FOREIGN KEY(`ingredient_id`) REFERENCES `ingredient` ON DELETE CASCADE ON UPDATE CASCADE,
  1043.     PRIMARY KEY(`id`)
  1044. );
  1045. CREATE TABLE IF NOT EXISTS `ingredientLangAttribute` (
  1046.     `id`    INTEGER NOT NULL,
  1047.     `type`  VARCHAR NOT NULL,
  1048.     PRIMARY KEY(`id`)
  1049. );
  1050. CREATE TABLE IF NOT EXISTS `ingredientLang` (
  1051.     `ingredient_id` INTEGER NOT NULL,
  1052.     `ingredientLangAttribute_id`    INTEGER NOT NULL,
  1053.     `locale_id` INTEGER NOT NULL,
  1054.     `text`  VARCHAR NOT NULL,
  1055.     `sortKey`   BLOB NOT NULL,
  1056.     `isInternal`    BOOLEAN NOT NULL,
  1057.     PRIMARY KEY(`ingredient_id`,`ingredientLangAttribute_id`,`locale_id`),
  1058.     FOREIGN KEY(`ingredient_id`) REFERENCES `ingredient` ON DELETE CASCADE ON UPDATE CASCADE,
  1059.     FOREIGN KEY(`locale_id`) REFERENCES `locale` ON DELETE CASCADE ON UPDATE RESTRICT,
  1060.     FOREIGN KEY(`ingredientLangAttribute_id`) REFERENCES `ingredientLangAttribute` ON DELETE CASCADE ON UPDATE RESTRICT
  1061. );
  1062. CREATE TABLE IF NOT EXISTS `ingredientFoodCategoryLang` (
  1063.     `ingredientFoodCategory_id` INTEGER NOT NULL,
  1064.     `locale_id` INTEGER NOT NULL,
  1065.     `text`  VARCHAR NOT NULL,
  1066.     `sortKey`   BLOB NOT NULL,
  1067.     FOREIGN KEY(`ingredientFoodCategory_id`) REFERENCES `ingredientFoodCategory` ON DELETE CASCADE ON UPDATE CASCADE,
  1068.     FOREIGN KEY(`locale_id`) REFERENCES `locale` ON DELETE CASCADE ON UPDATE RESTRICT,
  1069.     PRIMARY KEY(`ingredientFoodCategory_id`,`locale_id`)
  1070. );
  1071. CREATE TABLE IF NOT EXISTS `ingredientFoodCategory` (
  1072.     `id`    INTEGER NOT NULL,
  1073.     `lft`   INTEGER NOT NULL,
  1074.     `rgt`   INTEGER NOT NULL,
  1075.     PRIMARY KEY(`id`)
  1076. );
  1077. CREATE TABLE IF NOT EXISTS `ingredientFlag` (
  1078.     `id`    INTEGER NOT NULL,
  1079.     `flagName`  VARCHAR NOT NULL,
  1080.     PRIMARY KEY(`id`)
  1081. );
  1082. CREATE TABLE IF NOT EXISTS `ingredient` (
  1083.     `id`    INTEGER NOT NULL,
  1084.     `uid`   VARCHAR NOT NULL,
  1085.     `shoppingCategory_id`   INTEGER NOT NULL,
  1086.     `version`   DECIMAL ( 8 , 2 ) NOT NULL,
  1087.     `isDeleted` BOOLEAN NOT NULL,
  1088.     `createdts` INTEGER NOT NULL,
  1089.     FOREIGN KEY(`shoppingCategory_id`) REFERENCES `shoppingCategory` ON DELETE CASCADE ON UPDATE CASCADE,
  1090.     PRIMARY KEY(`id`)
  1091. );
  1092. CREATE TABLE IF NOT EXISTS `guidedUtensilStep` (
  1093.     `guidedStep_id` INTEGER NOT NULL,
  1094.     `guidedUtensilActionType_id`    INTEGER NOT NULL,
  1095.     `guidedUtensilActionText_id`    INTEGER NOT NULL,
  1096.     PRIMARY KEY(`guidedStep_id`),
  1097.     FOREIGN KEY(`guidedStep_id`) REFERENCES `guidedStep` ON DELETE CASCADE ON UPDATE CASCADE,
  1098.     FOREIGN KEY(`guidedUtensilActionText_id`) REFERENCES `guidedUtensilActionText` ON DELETE CASCADE ON UPDATE CASCADE,
  1099.     FOREIGN KEY(`guidedUtensilActionType_id`) REFERENCES `guidedUtensilActionType` ON DELETE CASCADE ON UPDATE RESTRICT
  1100. );
  1101. CREATE TABLE IF NOT EXISTS `guidedUtensilActionType` (
  1102.     `id`    INTEGER NOT NULL,
  1103.     `value` CLOB NOT NULL,
  1104.     PRIMARY KEY(`id`)
  1105. );
  1106. CREATE TABLE IF NOT EXISTS `guidedUtensilActionTextLang` (
  1107.     `guidedUtensilActionText_id`    INTEGER NOT NULL,
  1108.     `locale_id` INTEGER NOT NULL,
  1109.     `text`  VARCHAR NOT NULL,
  1110.     `sortKey`   BLOB NOT NULL,
  1111.     PRIMARY KEY(`guidedUtensilActionText_id`,`locale_id`),
  1112.     FOREIGN KEY(`guidedUtensilActionText_id`) REFERENCES `guidedUtensilActionText` ON DELETE CASCADE ON UPDATE CASCADE,
  1113.     FOREIGN KEY(`locale_id`) REFERENCES `locale` ON DELETE CASCADE ON UPDATE RESTRICT
  1114. );
  1115. CREATE TABLE IF NOT EXISTS `guidedUtensilActionText` (
  1116.     `id`    INTEGER NOT NULL,
  1117.     `isPredefined`  BOOLEAN NOT NULL DEFAULT 0,
  1118.     PRIMARY KEY(`id`)
  1119. );
  1120. CREATE TABLE IF NOT EXISTS `guidedTmSettingStepLangAttribute` (
  1121.     `id`    INTEGER NOT NULL,
  1122.     `value` CLOB NOT NULL,
  1123.     PRIMARY KEY(`id`)
  1124. );
  1125. CREATE TABLE IF NOT EXISTS `guidedTmSettingStepLang` (
  1126.     `guidedTmSettingStep_id`    INTEGER NOT NULL,
  1127.     `guidedTmSettingStepLangAttribute_id`   INTEGER NOT NULL,
  1128.     `locale_id` INTEGER NOT NULL,
  1129.     `text`  VARCHAR NOT NULL,
  1130.     `sortKey`   BLOB NOT NULL,
  1131.     PRIMARY KEY(`guidedTmSettingStep_id`,`guidedTmSettingStepLangAttribute_id`,`locale_id`),
  1132.     FOREIGN KEY(`locale_id`) REFERENCES `locale` ON DELETE CASCADE ON UPDATE RESTRICT,
  1133.     FOREIGN KEY(`guidedTmSettingStep_id`) REFERENCES `guidedTmSettingStep` ON DELETE CASCADE ON UPDATE CASCADE,
  1134.     FOREIGN KEY(`guidedTmSettingStepLangAttribute_id`) REFERENCES `guidedTmSettingStepLangAttribute` ON DELETE CASCADE ON UPDATE RESTRICT
  1135. );
  1136. CREATE TABLE IF NOT EXISTS `guidedTmSettingStep` (
  1137.     `guidedStep_id` INTEGER NOT NULL,
  1138.     `recipeStep_id` INTEGER NOT NULL,
  1139.     `tmControl_id`  INTEGER NOT NULL,
  1140.     PRIMARY KEY(`guidedStep_id`),
  1141.     FOREIGN KEY(`guidedStep_id`) REFERENCES `guidedStep` ON DELETE CASCADE ON UPDATE CASCADE,
  1142.     FOREIGN KEY(`tmControl_id`,`recipeStep_id`) REFERENCES `recipeStep_tmControl`(`tmControl_id`,`recipeStep_id`) ON DELETE CASCADE ON UPDATE CASCADE
  1143. );
  1144. CREATE TABLE IF NOT EXISTS `guidedStep_materialObject` (
  1145.     `guidedStep_id` INTEGER NOT NULL,
  1146.     `guidedStepMaterialObjectType_id`   INTEGER NOT NULL,
  1147.     `materialObject_id` INTEGER NOT NULL,
  1148.     FOREIGN KEY(`guidedStepMaterialObjectType_id`) REFERENCES `guidedStepMaterialObjectType` ON DELETE CASCADE ON UPDATE RESTRICT,
  1149.     FOREIGN KEY(`materialObject_id`) REFERENCES `materialObject` ON DELETE CASCADE ON UPDATE CASCADE,
  1150.     PRIMARY KEY(`guidedStep_id`,`guidedStepMaterialObjectType_id`,`materialObject_id`),
  1151.     FOREIGN KEY(`guidedStep_id`) REFERENCES `guidedStep` ON DELETE CASCADE ON UPDATE CASCADE
  1152. );
  1153. CREATE TABLE IF NOT EXISTS `guidedStepType` (
  1154.     `id`    INTEGER NOT NULL,
  1155.     `value` CLOB NOT NULL,
  1156.     PRIMARY KEY(`id`)
  1157. );
  1158. CREATE TABLE IF NOT EXISTS `guidedStepMaterialObjectType` (
  1159.     `id`    INTEGER NOT NULL,
  1160.     `value` CLOB NOT NULL,
  1161.     PRIMARY KEY(`id`)
  1162. );
  1163. CREATE TABLE IF NOT EXISTS `guidedStep` (
  1164.     `id`    INTEGER NOT NULL,
  1165.     `recipeStep_id` INTEGER NOT NULL,
  1166.     `guidedStepType_id` INTEGER NOT NULL,
  1167.     `position`  INTEGER NOT NULL,
  1168.     FOREIGN KEY(`recipeStep_id`) REFERENCES `recipeStep` ON DELETE CASCADE ON UPDATE CASCADE,
  1169.     PRIMARY KEY(`id`),
  1170.     FOREIGN KEY(`guidedStepType_id`) REFERENCES `guidedStepType` ON DELETE CASCADE ON UPDATE RESTRICT
  1171. );
  1172. CREATE TABLE IF NOT EXISTS `guidedIngredientStepWeighingAttribute` (
  1173.     `id`    INTEGER NOT NULL,
  1174.     `value` CLOB NOT NULL,
  1175.     PRIMARY KEY(`id`)
  1176. );
  1177. CREATE TABLE IF NOT EXISTS `guidedIngredientStepTextLang` (
  1178.     `guidedIngredientStepText_id`   INTEGER NOT NULL,
  1179.     `locale_id` INTEGER NOT NULL,
  1180.     `text`  VARCHAR NOT NULL,
  1181.     `sortKey`   BLOB NOT NULL,
  1182.     PRIMARY KEY(`guidedIngredientStepText_id`,`locale_id`),
  1183.     FOREIGN KEY(`locale_id`) REFERENCES `locale` ON DELETE CASCADE ON UPDATE RESTRICT,
  1184.     FOREIGN KEY(`guidedIngredientStepText_id`) REFERENCES `guidedIngredientStepText` ON DELETE CASCADE ON UPDATE CASCADE
  1185. );
  1186. CREATE TABLE IF NOT EXISTS `guidedIngredientStepTextAttribute` (
  1187.     `id`    INTEGER NOT NULL,
  1188.     `value` CLOB NOT NULL,
  1189.     PRIMARY KEY(`id`)
  1190. );
  1191. CREATE TABLE IF NOT EXISTS `guidedIngredientStepText` (
  1192.     `id`    INTEGER NOT NULL,
  1193.     `guidedIngredientStepTextAttribute_id`  INTEGER NOT NULL,
  1194.     `isPredefined`  BOOLEAN NOT NULL,
  1195.     FOREIGN KEY(`guidedIngredientStepTextAttribute_id`) REFERENCES `guidedIngredientStepTextAttribute` ON DELETE CASCADE ON UPDATE RESTRICT,
  1196.     PRIMARY KEY(`id`)
  1197. );
  1198. CREATE TABLE IF NOT EXISTS `guidedIngredientStepIngredientAmountRange` (
  1199.     `guidedIngredientStep_id`   INTEGER NOT NULL,
  1200.     `recipeStep_id` INTEGER NOT NULL,
  1201.     `recipeIngredient_id`   INTEGER NOT NULL,
  1202.     `rangeType_id`  INTEGER NOT NULL,
  1203.     `amount`    DECIMAL ( 8 , 3 ) NOT NULL,
  1204.     PRIMARY KEY(`guidedIngredientStep_id`,`recipeStep_id`,`recipeIngredient_id`,`rangeType_id`),
  1205.     FOREIGN KEY(`recipeStep_id`,`recipeIngredient_id`,`guidedIngredientStep_id`) REFERENCES `guidedIngredientStepIngredient`(`recipeStep_id`,`recipeIngredient_id`,`guidedIngredientStep_id`) ON DELETE CASCADE ON UPDATE CASCADE,
  1206.     FOREIGN KEY(`rangeType_id`) REFERENCES `rangeType` ON DELETE CASCADE ON UPDATE RESTRICT
  1207. );
  1208. CREATE TABLE IF NOT EXISTS `guidedIngredientStepIngredient` (
  1209.     `guidedIngredientStep_id`   INTEGER NOT NULL,
  1210.     `recipeStep_id` INTEGER NOT NULL,
  1211.     `recipeIngredient_id`   INTEGER NOT NULL,
  1212.     `ingredientNotation_id` INTEGER NOT NULL,
  1213.     `guidedIngredientStepWeighingAttribute_id`  INTEGER NOT NULL,
  1214.     `guidedIngredientStepText_id`   INTEGER NOT NULL,
  1215.     `unitNotation_id`   INTEGER DEFAULT NULL,
  1216.     FOREIGN KEY(`guidedIngredientStep_id`) REFERENCES `guidedIngredientStep` ON DELETE CASCADE ON UPDATE CASCADE,
  1217.     PRIMARY KEY(`guidedIngredientStep_id`,`recipeStep_id`,`recipeIngredient_id`),
  1218.     FOREIGN KEY(`guidedIngredientStepText_id`) REFERENCES `guidedIngredientStepText` ON DELETE CASCADE ON UPDATE CASCADE,
  1219.     FOREIGN KEY(`unitNotation_id`) REFERENCES `unitNotation` ON DELETE CASCADE ON UPDATE CASCADE,
  1220.     FOREIGN KEY(`recipeIngredient_id`,`recipeStep_id`) REFERENCES `recipeStep_recipeIngredient`(`recipeIngredient_id`,`recipeStep_id`) ON DELETE CASCADE ON UPDATE CASCADE,
  1221.     FOREIGN KEY(`guidedIngredientStepWeighingAttribute_id`) REFERENCES `guidedIngredientStepWeighingAttribute` ON DELETE CASCADE ON UPDATE RESTRICT,
  1222.     FOREIGN KEY(`ingredientNotation_id`) REFERENCES `ingredientNotation` ON DELETE CASCADE ON UPDATE CASCADE
  1223. );
  1224. CREATE TABLE IF NOT EXISTS `guidedIngredientStep` (
  1225.     `guidedStep_id` INTEGER NOT NULL,
  1226.     PRIMARY KEY(`guidedStep_id`),
  1227.     FOREIGN KEY(`guidedStep_id`) REFERENCES `guidedStep` ON DELETE CASCADE ON UPDATE CASCADE
  1228. );
  1229. CREATE TABLE IF NOT EXISTS `guidedFreetextType` (
  1230.     `id`    INTEGER NOT NULL,
  1231.     `value` CLOB NOT NULL,
  1232.     PRIMARY KEY(`id`)
  1233. );
  1234. CREATE TABLE IF NOT EXISTS `guidedFreetextStepLang` (
  1235.     `guidedFreetextStep_id` INTEGER NOT NULL,
  1236.     `locale_id` INTEGER NOT NULL,
  1237.     `text`  VARCHAR NOT NULL,
  1238.     `sortKey`   BLOB NOT NULL,
  1239.     PRIMARY KEY(`guidedFreetextStep_id`,`locale_id`),
  1240.     FOREIGN KEY(`guidedFreetextStep_id`) REFERENCES `guidedFreetextStep` ON DELETE CASCADE ON UPDATE CASCADE,
  1241.     FOREIGN KEY(`locale_id`) REFERENCES `locale` ON DELETE CASCADE ON UPDATE RESTRICT
  1242. );
  1243. CREATE TABLE IF NOT EXISTS `guidedFreetextStep` (
  1244.     `guidedStep_id` INTEGER NOT NULL,
  1245.     `guidedFreetextType_id` INTEGER NOT NULL,
  1246.     FOREIGN KEY(`guidedFreetextType_id`) REFERENCES `guidedFreetextType` ON DELETE CASCADE ON UPDATE RESTRICT,
  1247.     PRIMARY KEY(`guidedStep_id`),
  1248.     FOREIGN KEY(`guidedStep_id`) REFERENCES `guidedStep` ON DELETE CASCADE ON UPDATE CASCADE
  1249. );
  1250. CREATE TABLE IF NOT EXISTS `guidedCreatedIngredientStepTextLang` (
  1251.     `guidedCreatedIngredientStepText_id`    INTEGER NOT NULL,
  1252.     `locale_id` INTEGER NOT NULL,
  1253.     `text`  VARCHAR NOT NULL,
  1254.     `sortKey`   BLOB NOT NULL,
  1255.     FOREIGN KEY(`guidedCreatedIngredientStepText_id`) REFERENCES `guidedCreatedIngredientStepText` ON DELETE CASCADE ON UPDATE CASCADE,
  1256.     PRIMARY KEY(`guidedCreatedIngredientStepText_id`,`locale_id`),
  1257.     FOREIGN KEY(`locale_id`) REFERENCES `locale` ON DELETE CASCADE ON UPDATE RESTRICT
  1258. );
  1259. CREATE TABLE IF NOT EXISTS `guidedCreatedIngredientStepTextAttribute` (
  1260.     `id`    INTEGER NOT NULL,
  1261.     `value` CLOB NOT NULL,
  1262.     PRIMARY KEY(`id`)
  1263. );
  1264. CREATE TABLE IF NOT EXISTS `guidedCreatedIngredientStepText` (
  1265.     `id`    INTEGER NOT NULL,
  1266.     `guidedCreatedIngredientStepTextAttribute_id`   INTEGER NOT NULL,
  1267.     `isPredefined`  BOOLEAN NOT NULL,
  1268.     PRIMARY KEY(`id`),
  1269.     FOREIGN KEY(`guidedCreatedIngredientStepTextAttribute_id`) REFERENCES `guidedCreatedIngredientStepTextAttribute` ON DELETE CASCADE ON UPDATE RESTRICT
  1270. );
  1271. CREATE TABLE IF NOT EXISTS `guidedCreatedIngredientStep` (
  1272.     `guidedStep_id` INTEGER NOT NULL,
  1273.     `guidedCreatedIngredientNotation_id`    INTEGER NOT NULL,
  1274.     `guidedCreatedIngredientStepText_id`    INTEGER NOT NULL,
  1275.     `guidedIngredientStepWeighingAttribute_id`  INTEGER NOT NULL,
  1276.     `unitNotation_id`   INTEGER DEFAULT NULL,
  1277.     FOREIGN KEY(`unitNotation_id`) REFERENCES `unitNotation` ON DELETE CASCADE ON UPDATE CASCADE,
  1278.     PRIMARY KEY(`guidedStep_id`),
  1279.     FOREIGN KEY(`guidedStep_id`) REFERENCES `guidedStep` ON DELETE CASCADE ON UPDATE CASCADE,
  1280.     FOREIGN KEY(`guidedIngredientStepWeighingAttribute_id`) REFERENCES `guidedIngredientStepWeighingAttribute` ON DELETE CASCADE ON UPDATE RESTRICT,
  1281.     FOREIGN KEY(`guidedCreatedIngredientNotation_id`) REFERENCES `guidedCreatedIngredientNotation` ON DELETE CASCADE ON UPDATE RESTRICT,
  1282.     FOREIGN KEY(`guidedCreatedIngredientStepText_id`) REFERENCES `guidedCreatedIngredientStepText` ON DELETE CASCADE ON UPDATE CASCADE
  1283. );
  1284. CREATE TABLE IF NOT EXISTS `guidedCreatedIngredientNotationLang` (
  1285.     `guidedCreatedIngredientNotation_id`    INTEGER NOT NULL,
  1286.     `locale_id` INTEGER NOT NULL,
  1287.     `text`  VARCHAR NOT NULL,
  1288.     `sortKey`   BLOB NOT NULL,
  1289.     PRIMARY KEY(`guidedCreatedIngredientNotation_id`,`locale_id`),
  1290.     FOREIGN KEY(`guidedCreatedIngredientNotation_id`) REFERENCES `guidedCreatedIngredientNotation` ON DELETE CASCADE ON UPDATE CASCADE,
  1291.     FOREIGN KEY(`locale_id`) REFERENCES `locale` ON DELETE CASCADE ON UPDATE RESTRICT
  1292. );
  1293. CREATE TABLE IF NOT EXISTS `guidedCreatedIngredientNotation` (
  1294.     `id`    INTEGER NOT NULL,
  1295.     PRIMARY KEY(`id`)
  1296. );
  1297. CREATE TABLE IF NOT EXISTS `guidedCreatedIngredientAmountRange` (
  1298.     `guidedCreatedIngredientStep_id`    INTEGER NOT NULL,
  1299.     `rangeType_id`  INTEGER NOT NULL,
  1300.     `amount`    DECIMAL ( 8 , 3 ) NOT NULL,
  1301.     PRIMARY KEY(`guidedCreatedIngredientStep_id`,`rangeType_id`),
  1302.     FOREIGN KEY(`guidedCreatedIngredientStep_id`) REFERENCES `guidedCreatedIngredientStep` ON DELETE CASCADE ON UPDATE CASCADE,
  1303.     FOREIGN KEY(`rangeType_id`) REFERENCES `rangeType` ON DELETE CASCADE ON UPDATE RESTRICT
  1304. );
  1305. CREATE TABLE IF NOT EXISTS `dataExtType` (
  1306.     `id`    INTEGER NOT NULL,
  1307.     `type`  VARCHAR NOT NULL,
  1308.     PRIMARY KEY(`id`)
  1309. );
  1310. CREATE TABLE IF NOT EXISTS `dataExt` (
  1311.     `dataExtType_id`    INTEGER NOT NULL,
  1312.     `value` VARCHAR NOT NULL,
  1313.     PRIMARY KEY(`dataExtType_id`),
  1314.     FOREIGN KEY(`dataExtType_id`) REFERENCES `dataExtType` ON DELETE CASCADE ON UPDATE RESTRICT
  1315. );
  1316. CREATE TABLE IF NOT EXISTS `countryLang` (
  1317.     `country_id`    INTEGER NOT NULL,
  1318.     `locale_id` INTEGER NOT NULL,
  1319.     `text`  VARCHAR ( 50 ) NOT NULL,
  1320.     `sortKey`   BLOB NOT NULL,
  1321.     FOREIGN KEY(`locale_id`) REFERENCES `locale` ON DELETE CASCADE ON UPDATE RESTRICT,
  1322.     FOREIGN KEY(`country_id`) REFERENCES `country` ON DELETE CASCADE ON UPDATE RESTRICT,
  1323.     PRIMARY KEY(`country_id`,`locale_id`)
  1324. );
  1325. CREATE TABLE IF NOT EXISTS `country` (
  1326.     `id`    INTEGER NOT NULL,
  1327.     `code`  VARCHAR ( 2 ) NOT NULL,
  1328.     PRIMARY KEY(`id`)
  1329. );
  1330. CREATE TABLE IF NOT EXISTS `cookstickMaterialObjectType` (
  1331.     `id`    INTEGER NOT NULL,
  1332.     `type`  CLOB NOT NULL,
  1333.     PRIMARY KEY(`id`)
  1334. );
  1335. CREATE TABLE IF NOT EXISTS `cookstickMaterialObject` (
  1336.     `id`    INTEGER NOT NULL,
  1337.     `locale_id` INTEGER NOT NULL,
  1338.     `cookstickMaterialObjectType_id`    INTEGER NOT NULL,
  1339.     `materialObject_id` INTEGER NOT NULL,
  1340.     FOREIGN KEY(`locale_id`) REFERENCES `locale` ON DELETE CASCADE ON UPDATE RESTRICT,
  1341.     FOREIGN KEY(`cookstickMaterialObjectType_id`) REFERENCES `cookstickMaterialObjectType` ON DELETE CASCADE ON UPDATE RESTRICT,
  1342.     PRIMARY KEY(`id`),
  1343.     FOREIGN KEY(`materialObject_id`) REFERENCES `materialObject` ON DELETE CASCADE ON UPDATE CASCADE
  1344. );
  1345. CREATE TABLE IF NOT EXISTS `cookstickExtLangAttribute` (
  1346.     `id`    INTEGER NOT NULL,
  1347.     `type`  CLOB NOT NULL,
  1348.     PRIMARY KEY(`id`)
  1349. );
  1350. CREATE TABLE IF NOT EXISTS `cookstickExtLang` (
  1351.     `cookstickExtLangAttribute_id`  INTEGER NOT NULL,
  1352.     `locale_id` INTEGER NOT NULL,
  1353.     `text`  VARCHAR NOT NULL,
  1354.     `sortKey`   BLOB NOT NULL,
  1355.     PRIMARY KEY(`cookstickExtLangAttribute_id`,`locale_id`),
  1356.     FOREIGN KEY(`cookstickExtLangAttribute_id`) REFERENCES `cookstickExtLangAttribute` ON DELETE CASCADE ON UPDATE RESTRICT,
  1357.     FOREIGN KEY(`locale_id`) REFERENCES `locale` ON DELETE CASCADE ON UPDATE RESTRICT
  1358. );
  1359. CREATE TABLE IF NOT EXISTS `companyLocale` (
  1360.     `id`    INTEGER NOT NULL,
  1361.     `company_id`    INTEGER NOT NULL,
  1362.     `locale_id` INTEGER NOT NULL,
  1363.     `priority`  INTEGER NOT NULL,
  1364.     PRIMARY KEY(`id`),
  1365.     FOREIGN KEY(`company_id`) REFERENCES `company` ON DELETE CASCADE ON UPDATE CASCADE,
  1366.     FOREIGN KEY(`locale_id`) REFERENCES `locale` ON DELETE CASCADE ON UPDATE RESTRICT
  1367. );
  1368. CREATE TABLE IF NOT EXISTS `company` (
  1369.     `id`    INTEGER NOT NULL,
  1370.     `name`  VARCHAR NOT NULL,
  1371.     `address_id`    INTEGER NOT NULL,
  1372.     `phone` VARCHAR NOT NULL,
  1373.     `website`   VARCHAR NOT NULL,
  1374.     PRIMARY KEY(`id`),
  1375.     FOREIGN KEY(`address_id`) REFERENCES `address` ON DELETE CASCADE ON UPDATE CASCADE
  1376. );
  1377. CREATE TABLE IF NOT EXISTS `address` (
  1378.     `id`    INTEGER NOT NULL,
  1379.     `addressField`  CLOB NOT NULL,
  1380.     `street`    VARCHAR NOT NULL,
  1381.     `houseNo`   VARCHAR NOT NULL,
  1382.     `plz`   INTEGER NOT NULL,
  1383.     `city`  VARCHAR NOT NULL,
  1384.     `country_id`    INTEGER NOT NULL,
  1385.     PRIMARY KEY(`id`),
  1386.     FOREIGN KEY(`country_id`) REFERENCES `country` ON DELETE CASCADE ON UPDATE RESTRICT
  1387. );
  1388. CREATE INDEX IF NOT EXISTS `recipe_recipeCategory_recipeCategory_id_idx` ON `recipe_recipeCategory` (
  1389.     `recipeCategory_id` ASC
  1390. );
  1391. CREATE INDEX IF NOT EXISTS `recipeStep_idx` ON `recipeStep` (
  1392.     `recipe_id`
  1393. );
  1394. CREATE UNIQUE INDEX IF NOT EXISTS `recipeSignature_idx` ON `recipeSignature` (
  1395.     `recipe_id`,
  1396.     `recipeSignatureType_id`
  1397. );
  1398. CREATE INDEX IF NOT EXISTS `recipeRecentlySynced_idx` ON `recipeRecentlySynced` (
  1399.     `timestamp` ASC
  1400. );
  1401. CREATE INDEX IF NOT EXISTS `recipeLang_langAttr_localeId_idx` ON `recipeLang` (
  1402.     `recipeLangAttribute_id`,
  1403.     `locale_id`
  1404. );
  1405. CREATE INDEX IF NOT EXISTS `recipeIngredient_recipe_id_idx` ON `recipeIngredient` (
  1406.     `recipe_id` ASC
  1407. );
  1408. CREATE INDEX IF NOT EXISTS `recipeImport_idx` ON `recipeImport` (
  1409.     `recipe_id`
  1410. );
  1411. CREATE INDEX IF NOT EXISTS `recipeCategory_isPrimary_idx` ON `recipeCategory` (
  1412.     `isPrimary` DESC
  1413. );
  1414. CREATE INDEX IF NOT EXISTS `projectEntry_project_id_idx` ON `projectEntry` (
  1415.     `project_id`    ASC
  1416. );
  1417. CREATE UNIQUE INDEX IF NOT EXISTS `maintenanceRecipeHash_idx` ON `maintenanceRecipeHash` (
  1418.     `recipe_id`
  1419. );
  1420. CREATE UNIQUE INDEX IF NOT EXISTS `maintenanceRecipeCollectionHash_idx` ON `maintenanceRecipeCollectionHash` (
  1421.     `project_id`
  1422. );
  1423. CREATE UNIQUE INDEX IF NOT EXISTS `maintenanceMediaHash_idx` ON `maintenanceMediaHash` (
  1424.     `fileURI`   ASC
  1425. );
  1426. CREATE INDEX IF NOT EXISTS `maintenanceCloudSyncHash_maintenanceHashType_idx` ON `maintenanceCloudSyncHash` (
  1427.     `maintenanceHashType_id`    ASC
  1428. );
  1429. CREATE INDEX IF NOT EXISTS `guidedStep_idx` ON `guidedStep` (
  1430.     `recipeStep_id`
  1431. );
  1432. CREATE UNIQUE INDEX IF NOT EXISTS `companyLocale_company_locale_idx` ON `companyLocale` (
  1433.     `company_id`,
  1434.     `locale_id`
  1435. );
  1436. COMMIT;
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement