X-Git-Url: http://gitweb.michael.orlitzky.com/?a=blobdiff_plain;f=doc%2Fman1%2Fhtsn-import.1;h=78bcc6232570cdb3ac36473a1f1d4ecb509f723b;hb=57782578adc2b1aa463efcf4b85627b88bda681d;hp=49a6927c4ef7c385f47c086fc1b9d6275170c165;hpb=df252767d9819aee5ea41fa39bb44bd0a811d801;p=dead%2Fhtsn-import.git diff --git a/doc/man1/htsn-import.1 b/doc/man1/htsn-import.1 index 49a6927..78bcc62 100644 --- a/doc/man1/htsn-import.1 +++ b/doc/man1/htsn-import.1 @@ -49,6 +49,10 @@ The XML document types obtained from the feed are uniquely identified by their DTDs. We currently support documents with the following DTDs: .IP \[bu] 2 Auto_Racing_Schedule_XML.dtd +.IP \[bu] 2 +CBASK_Lineup_XML.dtd (GameInfo) +.IP \[bu] 2 +cbaskpreviewxml.dtd (GameInfo) .IP \[bu] Heartbeat.dtd .IP \[bu] @@ -56,25 +60,51 @@ Injuries_Detail_XML.dtd .IP \[bu] injuriesxml.dtd .IP \[bu] +MLB_Gaming_Matchup_XML.dtd (GameInfo) +.IP \[bu] +MLB_Lineup_XML.dtd (GameInfo) +.IP \[bu] +MLB_Matchup_XML.dtd (GameInfo) +.IP \[bu] +MLS_Preview_XML.dtd (GameInfo) +.IP \[bu] +mlbpreviewxml.dtd (GameInfo) +.IP \[bu] +NBA_Gaming_Matchup_XML.dtd (GameInfo) +.IP \[bu] +NBA_Playoff_Matchup_XML.dtd (GameInfo) +.IP \[bu] +NBALineupXML.dtd (GameInfo) +.IP \[bu] +nbapreviewxml.dtd (GameInfo) +.IP \[bu] newsxml.dtd .IP \[bu] +nhlpreviewxml.dtd (GameInfo) +.IP \[bu] Odds_XML.dtd .IP \[bu] +recapxml.dtd (GameInfo) +.IP \[bu] scoresxml.dtd .IP \[bu] weatherxml.dtd +.P +The GameInfo and SportsInfo types do not have their own top-level +tables in the database. Instead, their raw XML is stored in either the +\(dqgame_info\(dq or \(dqsports_info\(dq table respectively. .SH DATABASE SCHEMA .P -At the top level, we have one table for each of the XML document types -that we import. For example, the documents corresponding to -\fInewsxml.dtd\fR will have a table called \(dqnews\(dq. All top-level -tables contain two important fields, \(dqxml_file_id\(dq and -\(dqtime_stamp\(dq. The former is unique and prevents us from -inserting the same data twice. The time stamp on the other hand lets -us know when the data is old and can be removed. The database schema -make it possible to delete only the outdated top-level records; all -transient children should be removed by triggers. +At the top level (with two notable exceptions), we have one table for +each of the XML document types that we import. For example, the +documents corresponding to \fInewsxml.dtd\fR will have a table called +\(dqnews\(dq. All top-level tables contain two important fields, +\(dqxml_file_id\(dq and \(dqtime_stamp\(dq. The former is unique and +prevents us from inserting the same data twice. The time stamp on the +other hand lets us know when the data is old and can be removed. The +database schema make it possible to delete only the outdated top-level +records; all transient children should be removed by triggers. .P These top-level tables will often have children. For example, each news item has zero or more locations associated with it. The child @@ -106,6 +136,14 @@ to delete the old games (through an ON DELETE CASCADE, tied to unique constraint in the top-level table's \(dqxml_file_id\(dq will prevent duplication in this case anyway. .P +The aforementioned exceptions are the \(dqgame_info\(dq and +\(dqsports_info\(dq tables. These tables contain the raw XML for a +number of DTDs that are not handled individually. This is partially +for backwards-compatibility with a legacy implementation, but is +mostly a stopgap due to a lack of resources at the moment. These two +tables (game_info and sports_info) still possess timestamps that allow +us to prune old data. +.P UML diagrams of the resulting database schema for each XML document type are provided with the \fBhtsn-import\fR documentation. @@ -115,8 +153,8 @@ There are a number of problems with the XML on the wire. Even if we construct the DTDs ourselves, the results are sometimes inconsistent. Here we document a few of them. -.IP \[bu] -2 Odds_XML.dtd +.IP \[bu] 2 +Odds_XML.dtd The elements here are supposed to be associated with a set of elements, but since the pair