Differences between revisions 44 and 45
Revision 44 as of 2003-05-04 15:13:35
Size: 7611
Editor: klickitat
Comment: added a FOAF URL and a Jabber ID
Revision 45 as of 2003-05-08 09:03:46
Size: 5946
Editor: 64
Comment:
Deletions are marked like this. Additions are marked like this.
Line 12: Line 12:
 * 1...member of.............N Communitygroup  * 1...member of.......N Communitygroup
Line 15: Line 15:
 * id - numeric - Unique ID  * id - numeric, primary key - Unique ID
Line 18: Line 18:
 * username - character varying(20) - login name  * username - character varying(20), unique - login name
Line 23: Line 23:
 * communitygroupid - An index into the communitygroup table  * communitygroupid - numeric - An index into the communitygroup table
Line 30: Line 30:
 * certificationid - numeric - unknown  * certificationid - numeric - An index into an adhoc certification table
Line 35: Line 35:
 * sponsorid - numeric - Index to the user who sponsors this person
Line 55: Line 56:
 * nodeid - numeric - unique ID  * id - numeric, primary key - unique ID
Line 83: Line 84:
Indexes: node_nodeid_key unique btree (nodeid)
Line 89: Line 88:

Address Table [[BR]]
Description
Street address of users, nodes, etc.

Table Relationships
 * N......N User Table
 * N......N Node Table

Fields [[BR]]
 * id - numeric, primary key - unique ID
 * address1 - character varying(100) - Street address line 1
 * address2 - character varying(100) - Street address line 2
 * city - character varying (50) - City
 * state - character varying (20) - State or Province
 * zipcode - character varying (9) - ZIP or ZIP+4
 * country - character varying (20) - ISO Country Code
Line 99: Line 115:


Community database take 1



DonPark and AdamShand are thinking about ways to create a SQL (or maybe LDAP or XML or something) schema which a community wireless group can use as a universal data collection point. We're trying to catalog everything we can think of that a community wireless group would want to keep track of (yes we know we're doomed to failure :-).

 Don, it occurred to me that it might be worth checking out the NoCatAuth SQL schema (etc/nocat.schema in the tarball), they had originally planned for it to be more then just the auth server. -- Adam. I looked it over. added bandwidth and date to Node. Created Network. added URLs and password to User. (8Jun) -- DonPark

 How would the local *Cat box regulate bandwidth to the user? Would the local *Cat box have a table with users and their respective classes (owner, member, guest, etc..), or would there be another table for that? Somehow we have to account for the bandwidth shaping aspect of things. We could add a field of Type STATUS, memberstatus (nodeOwner, fullMember, guest), and have the local node shape bandwidth for those values. Make sense? -- DanRichardson

Databases
 * User
  * varchar GUID (32,Key)
  * date created
  * date modified
  * varchar username (64)
  * varchar first_name (64)
  * varchar last_name (64)
  * varchar password (64)
  * Type ICQ, icq_id
  * Type Jabber, jabber_id
  * Type URL, homepage
  * Type URL, faceimage
  * Type Address, mailing
  * Type Login, last_login
  * varchar notes (5k)

 * Node
  * varchar GUID (32,Key)
  * date created
  * date modified
  * varchar name (128)
  * Type Antenna, antenna_type
  * Type Direction antenna_pointing_direction
  * int power_output
  * int kbits_second
  * Type Address, antenna_address
  * Type GPS, antenna_gps
  * Type Affiliated group [n]
  * Type User, Owner [n]
  * Type User, Administrator [n]
  * varchar notes (5k)
  * Type URL, description
  * Type URL, login_help


 * GPS Loc
  * float lat
  * float long
  * float altitude

 * Network
  * GUID varchar(32,Key)
  * date created
  * date modified
  * name varchar(128)
Line 160: Line 117:
 * xmlrpc.personaltelco.net:3322  * xmlrpc.personaltelco.net/{user, node, map}
Line 162: Line 119:
 * inserts
 * updates
 * queries
  * Q: <nodequery sql="select * where name=\"PCHS\" " />
  * A: <node> <name>PCHS</name> </node> ...

The community database is the foundation for a set of social software applications. The primary focus is a user roster, a node roster, and a whuffie/mojo calculation and management system. The database is currently implemented in SQL tables on postgresql.

community database take two. March 2003 AdamShand, JerrittCollord, AaronBaer, DonPark, (insert your name here)

User Table BR Description

  • A record in the user table refers to an individual person.

Table Relationships

  • 1...member of.......N Communitygroup

Fields

  • id - numeric, primary key - Unique ID
  • createdate - timestamp - record creation date
  • modificationdate - timestamp - last modification date
  • username - character varying(20), unique - login name
  • firstname - character varying(50) - The user's first name
  • lastname - character varying(100) - The user's last name
  • password - character varying(8) - The user's password, in plaintext
  • memberstatus - character varying(10) - An index into the memberstatus table
  • communitygroupid - numeric - An index into the communitygroup table
  • phone_home - character varying(15) - Home phone number
  • phone_cell - character varying(15) - Cell phone number
  • url_homepage - character varying(200) - URL for a home page/info page
  • url_profileimage - character varying(200) - URL for a profile image
  • url_foaf - character varying(200) - URL to a FOAF description
  • comments - character varying(2000) - miscellaneous comments
  • certificationid - numeric - An index into an adhoc certification table
  • mailto - character varying(100) - User's email address
  • jabber - character varying(100) - User's jabber id
  • MOIN_ID - character varying(24) - login to the moinmoin system
  • tempkey - character varying(16) - unknown
  • sponsorid - numeric - Index to the user who sponsors this person

Create Record BR

  • Generate a Unique ID - either ask the user or generate one randomly
  • Minimum fields to fill: userid

Delete Record BR

  • Remove the record in the User table
  • Remove records in all tables listed in the relationship table list that have the same unique id

Node table BR Description

  • A wireless accesspoint at a particular location.

Table relationships

  • 1...owned by..............N User
  • 1...managed by............N User
  • 1...upstream comes from...N Provider

Fields

  • id - numeric, primary key - unique ID
  • createdate - ? - record creation date
  • modificationdate - ? - last modification date
  • name - character varying(1000) - Given name of the phone
  • providerid - numeric - index into the provider table
  • carrierid - numeric - index into the carrier table
  • neighborhoodid - numeric - index into the neighborhood table
  • bandwidthid - numeric - index into the bandwidth table
  • statusid - numeric - index into the status table
  • certificationid - numeric - index into the certification table
  • comments - character varying(2000) - notes on the node
  • longitude - character varying(200) - long
  • latitude - character varying(200) - latitude
  • altitude - ? - meters above sealevel
  • essid - character varying(500) - essid in use (this should index into a table for multiple radios)
  • channel - character varying(2) (parrt of the radio channel)
  • address - character varying(200) - (this should be an index into an address table)
  • city - character varying(100)
  • state - character varying(100)
  • zip - character varying(20)
  • url_sitephoto - character varying(300) - profile shot to include in a profile page
  • url_information - character varying(300) - Information about the site
  • maintainer1 - character varying(20) - index into user table (change into a new table to support N photos)
  • maintainer2 - character varying(20) -
  • owner - character varying(20) - index into the user table
  • node_geom - geometry - ?
  • pri_pub_ip_block - character varying(128) - IP block provided by DHCP. this would be part of the radio/interface specification.

Check constraints: BR

  • "$1" (srid(node_geom) = -1) BR "$2" ((geometrytype(node_geom) = 'POINT'::text) OR (node_geom IS NULL)) BR

Address Table BR Description Street address of users, nodes, etc.

Table Relationships

  • N......N User Table
  • N......N Node Table

Fields BR

  • id - numeric, primary key - unique ID
  • address1 - character varying(100) - Street address line 1
  • address2 - character varying(100) - Street address line 2
  • city - character varying (50) - City
  • state - character varying (20) - State or Province
  • zipcode - character varying (9) - ZIP or ZIP+4
  • country - character varying (20) - ISO Country Code

Table design notes:

When indexing one table to another table, ie when table A contains a foreign key from table B, follow these practices: BR

  • A one to one mapping between table A and table B - create a field in table A with attribute 'REFERENCES B'. the field contains a unique ID into table B.

  • A one to many mapping between table A and table B - Plan A no field is required in table A, create a field in table B that contains the unique ID type of table A. Then add records in table B as needed which all point to the unique ID from table A BR

  • A one to many mapping between table A and table B - Plan B Create a table called A_B that has two fields, uniqueID for A and uniqueID for B with attribute 'REFERENCES B'. Create a field in table A with attribute 'REFERENCES A_B'. Add an entry in table B. This will support cascading deletes since there is a path from a record in A to every record in B.BR

System for getting at the data

  • XML-RPC interface
  • xmlrpc.personaltelco.net/{user, node, map}

Implementation

  • PHP page talking to a MySQL server


[http://www.nodedb.com/ndbcom.dtd] NodeDB.com xml schema...


[CategoryDocumentation]

CommunityDatabase (last edited 2012-03-11 02:06:36 by RussellSenior)