M
Mark Firestone
----- Original Message -----
From: "Michael Neumann" <[email protected]>
To: "ruby-talk ML" <[email protected]>
Sent: Wednesday, July 21, 2004 3:42 PM
Subject: Re: ruby postgresql question
Sure. Here is the sql statement for a message board table
@db.exec("CREATE TABLE #{table} (delete boolean DEFAULT false, \
locked boolean DEFAULT false, number int PRIMARY KEY, \
m_to varchar(40), \
m_from varchar(40), msg_date timestamp, subject varchar(40),\
msg_text text, exported boolean DEFAULT false)")
Ok. It's an old text (telnet) based Bulletin Board System. You go to look
at messages
post since you last read them. The system find this point for you. Then
you press enter at the prompt to get the new messages, one at a time. Or
you can jump to a particular message by typing it's number, or you can go
backwards, if you like.
Well, messages get deleted, but the message numbers in the table don't
change. The message numbers (when you are reading them) *do* change because
they are always 1..<highest message> so the system needs to know which
actual message to pull up when you type it's number in. They won't be the
same, after one message is deleted. So I am doing a ...
for row in @db.query("SELECT number FROM #{table} ORDER BY number")
hash << row[0].to_i
end
and making an array, full of message numbers. A lookup table. So I can
look up which message to pull up.
about future performace problems.
want to write a web front end for this one day...
Yep. But text based. Have a look. Telnet to: bbs.retrobbs.org 2323 and
have a look, if you like.
that's pretty similar to what I've done. Thanks again!
Mark
"But Schindler is bueno! Senior Burns is El Diablo!"
--------------------------------------------------------------
Website - http://www.retrobbs.org
Tradewars - telnet tradewars.retrobbs.org
BBS - http://bbs.retrobbs.org:8000
IRC - irc.retrobbs.org #main
WIKI - http://www.tpoh.org/cgi-bin/tpoh-wiki
From: "Michael Neumann" <[email protected]>
To: "ruby-talk ML" <[email protected]>
Sent: Wednesday, July 21, 2004 3:42 PM
Subject: Re: ruby postgresql question
can you describe the table layout in sql?
Sure. Here is the sql statement for a message board table
@db.exec("CREATE TABLE #{table} (delete boolean DEFAULT false, \
locked boolean DEFAULT false, number int PRIMARY KEY, \
m_to varchar(40), \
m_from varchar(40), msg_date timestamp, subject varchar(40),\
msg_text text, exported boolean DEFAULT false)")
what does "reading individual messages in _each direction_" mean? Has
this something to do with the hierarchy of the messages? (In-response-To
etc.)?
Ok. It's an old text (telnet) based Bulletin Board System. You go to look
at messages
post since you last read them. The system find this point for you. Then
you press enter at the prompt to get the new messages, one at a time. Or
you can jump to a particular message by typing it's number, or you can go
backwards, if you like.
I don't really understand [about making the table...]
Well, messages get deleted, but the message numbers in the table don't
change. The message numbers (when you are reading them) *do* change because
they are always 1..<highest message> so the system needs to know which
actual message to pull up when you type it's number in. They won't be the
same, after one message is deleted. So I am doing a ...
for row in @db.query("SELECT number FROM #{table} ORDER BY number")
hash << row[0].to_i
end
and making an array, full of message numbers. A lookup table. So I can
look up which message to pull up.
I'm not caching the messages, just making the lookup table. I'm concernedhm, maybe it's better to use transactions and don't cache the messages
on the client side.
about future performace problems.
I'll look into that. I've already got this thing working though... Plus, Iyes, but maybe SQlite is even better suited for your purposes (easier to
setup, single database file, no server, faster).
want to write a web front end for this one day...
I probably don't understand what a BBS is, but isn't that something like
a "forum" where you can post messages and respond to others' messages?
Yep. But text based. Have a look. Telnet to: bbs.retrobbs.org 2323 and
have a look, if you like.
Here's how I would design the messages table:
create table messages (
id integer primary key,
original_id integer, /* to be backwards compatible with old
messages */
parent integer null references messages (id),
.... /* other attributes */
body text
);
that's pretty similar to what I've done. Thanks again!
Mark
"But Schindler is bueno! Senior Burns is El Diablo!"
--------------------------------------------------------------
Website - http://www.retrobbs.org
Tradewars - telnet tradewars.retrobbs.org
BBS - http://bbs.retrobbs.org:8000
IRC - irc.retrobbs.org #main
WIKI - http://www.tpoh.org/cgi-bin/tpoh-wiki