mirror of
				https://github.com/KevinMidboe/linguist.git
				synced 2025-10-29 17:50:22 +00:00 
			
		
		
		
	Added sample files
This commit is contained in:
		
							
								
								
									
										85
									
								
								samples/SQL/videodb.cql
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										85
									
								
								samples/SQL/videodb.cql
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,85 @@
 | 
			
		||||
CREATE KEYSPACE videodb WITH REPLICATION = { 'class' : 'SimpleStrategy', 'replication_factor' : 1 };
 | 
			
		||||
 | 
			
		||||
use videodb;
 | 
			
		||||
 | 
			
		||||
// Basic entity table
 | 
			
		||||
// Object mapping ?
 | 
			
		||||
CREATE TABLE users (
 | 
			
		||||
   username varchar,
 | 
			
		||||
   firstname varchar,
 | 
			
		||||
   lastname varchar,
 | 
			
		||||
   email varchar,
 | 
			
		||||
   password varchar,
 | 
			
		||||
   created_date timestamp,
 | 
			
		||||
   total_credits int,
 | 
			
		||||
   credit_change_date timeuuid,
 | 
			
		||||
   PRIMARY KEY (username)
 | 
			
		||||
);
 | 
			
		||||
 | 
			
		||||
// One-to-many entity table
 | 
			
		||||
CREATE TABLE videos (
 | 
			
		||||
   videoid uuid,
 | 
			
		||||
   videoname varchar,
 | 
			
		||||
   username varchar,
 | 
			
		||||
   description varchar, 
 | 
			
		||||
   tags list<varchar>,
 | 
			
		||||
   upload_date timestamp,
 | 
			
		||||
   PRIMARY KEY (videoid)
 | 
			
		||||
);
 | 
			
		||||
 | 
			
		||||
// One-to-many from the user point of view
 | 
			
		||||
// Also know as a lookup table
 | 
			
		||||
CREATE TABLE username_video_index (
 | 
			
		||||
   username varchar,
 | 
			
		||||
   videoid uuid,
 | 
			
		||||
   upload_date timestamp,
 | 
			
		||||
   videoname varchar,
 | 
			
		||||
   PRIMARY KEY (username, videoid)
 | 
			
		||||
);
 | 
			
		||||
 | 
			
		||||
// Counter table
 | 
			
		||||
CREATE TABLE video_rating (
 | 
			
		||||
   videoid uuid,
 | 
			
		||||
   rating_counter counter,
 | 
			
		||||
   rating_total counter,
 | 
			
		||||
   PRIMARY KEY (videoid)
 | 
			
		||||
);
 | 
			
		||||
 | 
			
		||||
// Creating index tables for tab keywords
 | 
			
		||||
CREATE TABLE tag_index (
 | 
			
		||||
   tag varchar, 
 | 
			
		||||
   videoid uuid,
 | 
			
		||||
   timestamp timestamp,
 | 
			
		||||
   PRIMARY KEY (tag, videoid)
 | 
			
		||||
);
 | 
			
		||||
 | 
			
		||||
// Comments as a many-to-many 
 | 
			
		||||
// Looking from the video side to many users
 | 
			
		||||
CREATE TABLE comments_by_video (
 | 
			
		||||
   videoid uuid,
 | 
			
		||||
   username varchar,
 | 
			
		||||
   comment_ts timestamp,
 | 
			
		||||
   comment varchar,
 | 
			
		||||
   PRIMARY KEY (videoid,comment_ts,username)
 | 
			
		||||
) WITH CLUSTERING ORDER BY (comment_ts DESC, username ASC);
 | 
			
		||||
 | 
			
		||||
// looking from the user side to many videos
 | 
			
		||||
CREATE TABLE comments_by_user (
 | 
			
		||||
   username varchar,
 | 
			
		||||
   videoid uuid,
 | 
			
		||||
   comment_ts timestamp,
 | 
			
		||||
   comment varchar,
 | 
			
		||||
   PRIMARY KEY (username,comment_ts,videoid)
 | 
			
		||||
) WITH CLUSTERING ORDER BY (comment_ts DESC, videoid ASC);
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
// Time series wide row with reverse comparator
 | 
			
		||||
CREATE TABLE video_event (
 | 
			
		||||
   videoid uuid,
 | 
			
		||||
   username varchar,
 | 
			
		||||
   event varchar,
 | 
			
		||||
   event_timestamp timeuuid,
 | 
			
		||||
   video_timestamp bigint,
 | 
			
		||||
   PRIMARY KEY ((videoid,username), event_timestamp,event)
 | 
			
		||||
) WITH CLUSTERING ORDER BY (event_timestamp DESC,event ASC);
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										85
									
								
								samples/SQL/videodb.ddl
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										85
									
								
								samples/SQL/videodb.ddl
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,85 @@
 | 
			
		||||
CREATE KEYSPACE videodb WITH REPLICATION = { 'class' : 'SimpleStrategy', 'replication_factor' : 1 };
 | 
			
		||||
 | 
			
		||||
use videodb;
 | 
			
		||||
 | 
			
		||||
// Basic entity table
 | 
			
		||||
// Object mapping ?
 | 
			
		||||
CREATE TABLE users (
 | 
			
		||||
   username varchar,
 | 
			
		||||
   firstname varchar,
 | 
			
		||||
   lastname varchar,
 | 
			
		||||
   email varchar,
 | 
			
		||||
   password varchar,
 | 
			
		||||
   created_date timestamp,
 | 
			
		||||
   total_credits int,
 | 
			
		||||
   credit_change_date timeuuid,
 | 
			
		||||
   PRIMARY KEY (username)
 | 
			
		||||
);
 | 
			
		||||
 | 
			
		||||
// One-to-many entity table
 | 
			
		||||
CREATE TABLE videos (
 | 
			
		||||
   videoid uuid,
 | 
			
		||||
   videoname varchar,
 | 
			
		||||
   username varchar,
 | 
			
		||||
   description varchar, 
 | 
			
		||||
   tags list<varchar>,
 | 
			
		||||
   upload_date timestamp,
 | 
			
		||||
   PRIMARY KEY (videoid)
 | 
			
		||||
);
 | 
			
		||||
 | 
			
		||||
// One-to-many from the user point of view
 | 
			
		||||
// Also know as a lookup table
 | 
			
		||||
CREATE TABLE username_video_index (
 | 
			
		||||
   username varchar,
 | 
			
		||||
   videoid uuid,
 | 
			
		||||
   upload_date timestamp,
 | 
			
		||||
   videoname varchar,
 | 
			
		||||
   PRIMARY KEY (username, videoid)
 | 
			
		||||
);
 | 
			
		||||
 | 
			
		||||
// Counter table
 | 
			
		||||
CREATE TABLE video_rating (
 | 
			
		||||
   videoid uuid,
 | 
			
		||||
   rating_counter counter,
 | 
			
		||||
   rating_total counter,
 | 
			
		||||
   PRIMARY KEY (videoid)
 | 
			
		||||
);
 | 
			
		||||
 | 
			
		||||
// Creating index tables for tab keywords
 | 
			
		||||
CREATE TABLE tag_index (
 | 
			
		||||
   tag varchar, 
 | 
			
		||||
   videoid uuid,
 | 
			
		||||
   timestamp timestamp,
 | 
			
		||||
   PRIMARY KEY (tag, videoid)
 | 
			
		||||
);
 | 
			
		||||
 | 
			
		||||
// Comments as a many-to-many 
 | 
			
		||||
// Looking from the video side to many users
 | 
			
		||||
CREATE TABLE comments_by_video (
 | 
			
		||||
   videoid uuid,
 | 
			
		||||
   username varchar,
 | 
			
		||||
   comment_ts timestamp,
 | 
			
		||||
   comment varchar,
 | 
			
		||||
   PRIMARY KEY (videoid,comment_ts,username)
 | 
			
		||||
) WITH CLUSTERING ORDER BY (comment_ts DESC, username ASC);
 | 
			
		||||
 | 
			
		||||
// looking from the user side to many videos
 | 
			
		||||
CREATE TABLE comments_by_user (
 | 
			
		||||
   username varchar,
 | 
			
		||||
   videoid uuid,
 | 
			
		||||
   comment_ts timestamp,
 | 
			
		||||
   comment varchar,
 | 
			
		||||
   PRIMARY KEY (username,comment_ts,videoid)
 | 
			
		||||
) WITH CLUSTERING ORDER BY (comment_ts DESC, videoid ASC);
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
// Time series wide row with reverse comparator
 | 
			
		||||
CREATE TABLE video_event (
 | 
			
		||||
   videoid uuid,
 | 
			
		||||
   username varchar,
 | 
			
		||||
   event varchar,
 | 
			
		||||
   event_timestamp timeuuid,
 | 
			
		||||
   video_timestamp bigint,
 | 
			
		||||
   PRIMARY KEY ((videoid,username), event_timestamp,event)
 | 
			
		||||
) WITH CLUSTERING ORDER BY (event_timestamp DESC,event ASC);
 | 
			
		||||
 | 
			
		||||
		Reference in New Issue
	
	Block a user