From bf6745af21f82562af0b85de566f4e7b7ef5df8c Mon Sep 17 00:00:00 2001 From: Nathan Perry Date: Wed, 4 Apr 2018 22:09:13 -0400 Subject: revamp database structure --- src/db/schema.rs | 103 +++++++++++++++++++++++++++++++++++++++++++------------ 1 file changed, 82 insertions(+), 21 deletions(-) (limited to 'src/db/schema.rs') diff --git a/src/db/schema.rs b/src/db/schema.rs index b29a1ca..40891a5 100644 --- a/src/db/schema.rs +++ b/src/db/schema.rs @@ -1,21 +1,82 @@ -table! { - audio_memes (id) { - id -> Int4, - title -> Varchar, - link -> Varchar, - } -} - -table! { - text_memes (id) { - id -> Int4, - title -> Varchar, - content -> Text, - pic_related -> Varchar, - } -} - -allow_tables_to_appear_in_same_query!( - audio_memes, - text_memes, -); +table! { + audio (id) { + id -> Int4, + data -> Bytea, + metadata_id -> Int4, + } +} + +table! { + audio_memes (id) { + id -> Int4, + title -> Varchar, + audio_id -> Int4, + metadata_id -> Int4, + } +} + +table! { + audit_records (id) { + id -> Int4, + updated -> Timestamp, + updated_by -> Int8, + metadata_id -> Int4, + } +} + +table! { + image_memes (id) { + id -> Int4, + title -> Varchar, + image_id -> Int4, + metadata_id -> Int4, + } +} + +table! { + images (id) { + id -> Int4, + data -> Bytea, + metadata_id -> Int4, + } +} + +table! { + metadata (id) { + id -> Int4, + created -> Timestamp, + created_by -> Int8, + } +} + +table! { + text_memes (id) { + id -> Int4, + title -> Varchar, + content -> Text, + image_id -> Nullable, + audio_id -> Nullable, + metadata_id -> Int4, + } +} + +joinable!(audio -> metadata (metadata_id)); +joinable!(audio_memes -> audio (audio_id)); +joinable!(audio_memes -> metadata (metadata_id)); +joinable!(audit_records -> metadata (metadata_id)); +joinable!(image_memes -> images (image_id)); +joinable!(image_memes -> metadata (metadata_id)); +joinable!(images -> metadata (metadata_id)); +joinable!(text_memes -> audio (audio_id)); +joinable!(text_memes -> images (image_id)); +joinable!(text_memes -> metadata (metadata_id)); + +allow_tables_to_appear_in_same_query!( + audio, + audio_memes, + audit_records, + image_memes, + images, + metadata, + text_memes, +); -- cgit v1.3.1