Skip to content

Instantly share code, notes, and snippets.

View hungryzi's full-sized avatar

Zi Huong Vu hungryzi

  • Vancouver, Canada
View GitHub Profile
@hungryzi
hungryzi / neo-indexeddb-backbone.coffee
Last active December 11, 2015 08:58
Using neo/indexeddb-backbone-adapter
# Defining schema
IndexedDBBackbone.describe('todos')
.createStore('todos', { keyPath: 'id' })
.createIndex('todos', 'nameIndex', 'name', unique: false)
# Models & Collections
app.Todos = Backbone.Collection.extend
database: 'todos'
storeName: 'todos'
# ...
@hungryzi
hungryzi / superfeedr-indexeddb-backbone.coffee
Created January 20, 2013 07:20
Using superfeedr/indexeddb-backbone-adapter
# Defining schema
schema =
id: 'todos-database'
migrations: [
{
version: '1',
migrate: (db, req, next) ->
store = db.createObjectStore('todos')
next();
},
@hungryzi
hungryzi / inventory-1st-try.coffee
Created January 23, 2013 14:35
1st try at data modelling for inventory
# Sample record for 'catalog_items'
catalog_item =
id: 42
serialized: 1
category_id: 8
# Sample record for 'inventory_items'
inventory_item =
id: 1
catalog_item_id: 42
@hungryzi
hungryzi / inventory-2nd-try.coffee
Last active December 11, 2015 13:18
2nd try to improve inventory data modelling
# Sample record for 'catalog_items'
catalog_item =
id: 42
serialized: 1
category_id: 8
location_with_quantity: [1, 3]
# Sample record for 'inventory_items'
inventory_item =
id: 1
@hungryzi
hungryzi / inventory-naive.coffee
Last active December 11, 2015 13:18
Naive data modelling for inventory
# Sample record for 'catalog_items'
catalog_item =
id: 42
serialized: 1
category_id: 2
# Sample record for 'inventory_items'
inventory_item =
id: 1
catalog_item_id: 42
@hungryzi
hungryzi / inventory-1st-try-indices.coffee
Created January 24, 2013 01:56
Indices for naive modelling
@schema = IndexedDBBackbone.describe('experiment1')
.createStore('catalog_items', keyPath: 'id')
.createStore('inventory_items', keyPath: 'id')
.createIndex('inventory_items', 'queryIndex', ['location_id', 'catalog_item.serialized', 'catalog_item.category_id'], unique: false)
.createIndex('inventory_items', 'catalogItemIndex', 'catalog_item_id', unique: false)
@hungryzi
hungryzi / inventory-1st-try-indices.coffee
Last active December 11, 2015 14:49
Indices for 1st try modelling
@schema = IndexedDBBackbone.describe('experiment1')
.createStore('catalog_items', keyPath: 'id')
.createStore('inventory_items', keyPath: 'id')
.createIndex( 'inventory_items',
'queryIndex',
['location_id',
'catalog_item.serialized',
'catalog_item.category_id'],
{ unique: false })
.createIndex('inventory_items', 'catalogItemIndex', 'catalog_item_id', unique: false)
@hungryzi
hungryzi / inventory-2nd-try-indices.coffee
Last active December 11, 2015 14:49
Indices for 2nd try modelling
@schema = IndexedDBBackbone.describe('experiment1')
.createStore('catalog_items', keyPath: 'id')
.createStore('inventory_items', keyPath: 'id')
.createIndex( 'catalog_items',
'queryIndex',
['serialized',
'category_id',
'locations_with_quantity'],
{ unique: false, multiEntry: true })
.createIndex('inventory_items', 'catalogItemIndex', 'catalog_item_id', unique: false)
@hungryzi
hungryzi / inventory-naive-indices1.coffee
Last active December 11, 2015 14:49
Indices for naive modelling
@schema = IndexedDBBackbone.describe('experiment1')
.createStore('catalog_items', keyPath: 'id')
.createStore('inventory_items', keyPath: 'id')
.createIndex('catalog_items', 'serializedIndex', 'serialized', unique: false)
.createIndex('catalog_items', 'categoryIndex', 'category_id', unique: false)
.createIndex('inventory_items', 'locationIndex', 'location_id', unique: false)
.createIndex('inventory_items', 'catalogItemIndex', 'catalog_item_id', unique: false)
@hungryzi
hungryzi / add_a_record.js
Last active January 23, 2018 15:25
IndexedDB talk
var request = indexedDB.open('beer_czar');
request.onsuccess = function(event){
var db = event.target.result;
var transaction = db.transaction(['beer'], 'readwrite');
transaction.oncomplete = function(event){
// handle transaction errors here
}
var beerObjectStore = transaction.objectStore('beer');
var operation = beerObjectStore.add(beer)