Got some basic functionality working. Still isn't fully functional (only the specifie...
[dbsrgits/DBM-Deep.git] / etc / mysql_tables.sql
index 7a402a9..ab9674a 100644 (file)
@@ -1,50 +1,20 @@
-CREATE TABLE `rec_array` (
-  `id` bigint(20) unsigned NOT NULL,
-  PRIMARY KEY (`id`)
-);
-
-CREATE TABLE `rec_array_item` (
-  `id` bigint(20) unsigned NOT NULL AUTO_INCREMENT,
-  `array` bigint(20) NOT NULL,
-  `pos` bigint(20) NOT NULL,
-  `value_data` varchar(255) DEFAULT NULL,
-  `value_type` enum('array','data','hash','text','value') NOT NULL DEFAULT 'value',
-  PRIMARY KEY (`id`),
-  UNIQUE KEY `array_2` (`array`,`pos`),
-);
-
-CREATE TABLE `rec_hash` (
-  `id` bigint(20) unsigned NOT NULL,
-  PRIMARY KEY (`id`)
-);
+DROP TABLE IF EXISTS datas;
+DROP TABLE IF EXISTS refs;
 
-CREATE TABLE `rec_hash_item` (
-  `id` bigint(20) unsigned NOT NULL AUTO_INCREMENT,
-  `hash` bigint(20) NOT NULL,
-  `key_data` varchar(255) DEFAULT NULL,
-  `key_hash` varchar(22) NOT NULL,
-  `key_type` enum('text','value') NOT NULL DEFAULT 'value',
-  `value_data` varchar(255) DEFAULT NULL,
-  `value_type` enum('array','data','hash','text','value') NOT NULL DEFAULT 'value',
-  PRIMARY KEY (`id`),
-  UNIQUE KEY `hash_2` (`hash`,`key_hash`),
+CREATE TABLE refs (
+    id BIGINT UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY
+   ,ref_type ENUM( 'H', 'A' ) NOT NULL DEFAULT 'H'
+   ,refcount BIGINT UNSIGNED NOT NULL DEFAULT 1
 );
 
-CREATE TABLE `rec_item` (
-  `id` bigint(20) NOT NULL AUTO_INCREMENT,
-  `item_type` enum('array','hash') NOT NULL DEFAULT 'hash',
-  PRIMARY KEY (`id`)
+CREATE TABLE datas (
+    id BIGINT UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY
+   ,ref_id BIGINT UNSIGNED NOT NULL
+   ,data_type ENUM( 'S', 'R' ) DEFAULT 'S'
+   ,`key` TEXT NOT NULL
+   ,value TEXT
+   ,class TEXT
+   ,FOREIGN KEY (ref_id) REFERENCES refs (id)
+        ON DELETE CASCADE ON UPDATE CASCADE
+   ,UNIQUE INDEX (ref_id, `key` (900) )
 );
-
-CREATE TABLE `rec_value_data` (
-  `id` bigint(20) unsigned NOT NULL AUTO_INCREMENT,
-  `data` longblob NOT NULL,
-  PRIMARY KEY (`id`)
-);
-
-CREATE TABLE `rec_value_text` (
-  `id` bigint(20) unsigned NOT NULL AUTO_INCREMENT,
-  `data` longtext NOT NULL,
-  PRIMARY KEY (`id`)
-);
-