Return-Path: Delivered-To: apmail-couchdb-user-archive@www.apache.org Received: (qmail 23037 invoked from network); 28 Oct 2009 08:02:15 -0000 Received: from hermes.apache.org (HELO mail.apache.org) (140.211.11.3) by minotaur.apache.org with SMTP; 28 Oct 2009 08:02:15 -0000 Received: (qmail 33636 invoked by uid 500); 28 Oct 2009 08:02:13 -0000 Delivered-To: apmail-couchdb-user-archive@couchdb.apache.org Received: (qmail 33567 invoked by uid 500); 28 Oct 2009 08:02:13 -0000 Mailing-List: contact user-help@couchdb.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: user@couchdb.apache.org Delivered-To: mailing list user@couchdb.apache.org Received: (qmail 33557 invoked by uid 99); 28 Oct 2009 08:02:13 -0000 Received: from nike.apache.org (HELO nike.apache.org) (192.87.106.230) by apache.org (qpsmtpd/0.29) with ESMTP; Wed, 28 Oct 2009 08:02:13 +0000 X-ASF-Spam-Status: No, hits=-0.0 required=10.0 tests=SPF_PASS X-Spam-Check-By: apache.org Received-SPF: pass (nike.apache.org: domain of fidel.viegas@gmail.com designates 209.85.160.56 as permitted sender) Received: from [209.85.160.56] (HELO mail-pw0-f56.google.com) (209.85.160.56) by apache.org (qpsmtpd/0.29) with ESMTP; Wed, 28 Oct 2009 08:02:05 +0000 Received: by pwi18 with SMTP id 18so690785pwi.35 for ; Wed, 28 Oct 2009 01:01:43 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=domainkey-signature:mime-version:received:in-reply-to:references :date:message-id:subject:from:to:content-type; bh=Kcd2Vv50x8GfHyiFAdp7P8jjPyD9GNGO1D+OdfUfiq8=; b=FE/kVnidobAPMgk20+MADTZ0zHXf8FWtyAScL3OoteO9gRwizG4pMk3aDeayRz0vC9 UtrlugAXYJW3+0cL+s5qpJ5lCnxvMnJSuPKm5kMmjh3nSlRgL4Z8D/KkFmkLHVaYuPp4 Y3kb5ASbsiUzp+lzhXICgEAdTXd8/aQZsfOmM= DomainKey-Signature: a=rsa-sha1; c=nofws; d=gmail.com; s=gamma; h=mime-version:in-reply-to:references:date:message-id:subject:from:to :content-type; b=sQCt42ugw4RYG2rwxzcmO3HVn/1tqxrOQoubMVE/bW/8KCkLoczVs1uRZ0pWuEfwax WU9mOLcOo2NAbbsdxtv8Q5yMshTazHRE8DM6VLb5UlSRgiqace3ovjBmLneN+/fJulco w2i+lRugjLfL5EMsgFN7GqU8D2gWY5FHbjkzI= MIME-Version: 1.0 Received: by 10.140.202.9 with SMTP id z9mr2062748rvf.30.1256716903916; Wed, 28 Oct 2009 01:01:43 -0700 (PDT) In-Reply-To: <30b2aef60910271536m17a57219t9501af4039e8dc2e@mail.gmail.com> References: <3d3c4b7e0910271004l399aa849l24a9ed11c6a0c4da@mail.gmail.com> <30b2aef60910271536m17a57219t9501af4039e8dc2e@mail.gmail.com> Date: Wed, 28 Oct 2009 09:01:43 +0100 Message-ID: <3d3c4b7e0910280101m6a1b6815h7cd0bc1f6d423eac@mail.gmail.com> Subject: Re: CouchDB and Census software From: Fidel Viegas To: user@couchdb.apache.org Content-Type: text/plain; charset=ISO-8859-1 X-Virus-Checked: Checked by ClamAV on apache.org Hi Leo, First of foremost, thanks for your reply. > Yes, its an excellent fit. > > Besides the use of HTTP and replication, the free-form document format > mirrors the evolvability of excel spreadsheets pretty well. You should > be able to supporting adding and removing of columns pretty well. > I was reading more about it and yes, I think it is an excellent fit. Each survey is a self-contained document, which sort of fits the CouchDB document model. There is one thing though, that I think takes quite considerable space. For each document we insert, we will have space for the field names, which makes the the database grow faster than an RDBMS counterpart, for instance. Nonetheless, I really like the way CouchDB works and I am pretty excited to work with it on this project. > Depending on the size of these spreadsheets, you may want to make a > separate CouchDB database per province or per district. Writing the > map/reduce jobs will be a bit more tedious, but the data will be > easier to manage and replicate around. > After reading a few more chapters of CouchDB The Definitive Guide, I came to the same conclusion. Each province is independent of each other, and each district is also independent. All they need is to be able to generate reports districtwise, provincewise and nationwide. The district does not need to know about other districts, and same goes for the provinces. But provinces will gather data from districts and the central db from provinces. > For your first version I would install a single CouchDB on what will > eventually be your main/central server; it can serve all your > databases. Get the best possible connectivity to that server. Then, > write a little (web-based?) UI on top that allows submitting a > spreadsheet directly into this database. Then, add a function to > export the data out again. > > Importing/exporting excel can be a bit tricky to get right in a > webapp; the easiest and most robust approach actually is if you have > users select all the data in the spreadsheet, copy it to the > clipboard, and then paste it into a