3 ms·
A database that looks and acts like a spreadsheet. You can say Person.Name or you can say Person.A5. Every cell can itself be another spreadsheet/table. So yo
by david927 15y ago
A database that looks and acts like a spreadsheet. You can say Person.Name or you can say Person.A5. Every cell can itself be another spreadsheet/table. So you can query Person.A5.C3 or Person.Kids.Age. A query of :"Ahoj" will get any instances of that value in O(1) in any column of any table.
Each query/command is a single HTTP GET request. The spreadsheet is all done in pure canvas, and there's a JS equivalent for the backend, so it can work off-line and synch up.
- mahmud 15y agoSounds like javascript. foo["bar"] is same as foo.bar.
- david927 15y agoThere is a lot of overlap with Javascript. For example, you can also get your results in JSON. If you take a cell and for its child you fill in just A1, you get back the scalar (x.A1 is the same as x in this case); but if you fill in A1, A2, A3 you get back the array [x,y,z] and can access it with an index; if you fill in A1, B1, C1, you get back the object: {A:"x",B:"y",C:"z"}; and of course, if you do both, you get an array of objects.
- anujkk 15y agoHow is this being implemented? Is it a server side database and client communicate to it using HTTP Get request? Does it use POST and PUT requests too for modifying it(as in the case of REST? Also, I'm confused about "spreadsheet is all done in pure canvas". Are you talking about canvas of HTML5?
- david927 15y agoIt has two components: server-side in NodeJS (parsing), C++ transaction server, TokyoCabinet. Yeah, it's (roughly) RESTful. The UI is spreadsheet in HTML5 Canvas: http://kayia.org http://kayia.org (but this is for development -- it's very early) The project is hosted on Github: https://github.com/david927/Kayia https://github.com/david927/Kayia
- anujkk 15y agoAs far as I am getting it the UI is nothing but an online spreadsheet application. It is just one way to use the actual database, say an example product. The actual database can be accessed through any language through http calls to create other kind of products. Basically a webDB that can be accessed using RESTful API.
- david927 15y agoYou're right, but the UI is more than that. In the version coming in a few more weeks, there will be two more objects on the right side: a property box and another smaller spreadsheet. The smaller spreadsheet is the editor of the current cell. Ctrl-click on any cell and it will zoom in (make that smaller spreadsheet the main one), and the query goes fromm, say, Person to Person.C3. Shift-click on any cell and it will do a filter/QBE for all rows with that value, etc. The spreadsheet is the data editor, but it's much more powerful than what you currently see. Otherwise, you're right, you can create what you want; one app I want to do is a better version of Google Wave once the authorization module is plugged in.
- david927 15y agoI should add, the syntax is also "spreadsheet-like." You can do an anonymous insert and it will assign the next free row ID (say 4) and column name (say G), if needed. You can refer to any data point, say Person column Age, row ID of 5 as: Person.Age5 or Person.C5 if that's the third column (it adds column names by default).