summaryrefslogtreecommitdiffstats
path: root/docs/html/dbdoc.html
diff options
context:
space:
mode:
authorbarnboy%trilobyte.net <>2001-03-08 14:35:44 +0100
committerbarnboy%trilobyte.net <>2001-03-08 14:35:44 +0100
commit6b607da839992bead01d7cba308f216e17eed520 (patch)
treedce2e5e7aac71ccb906eb18b292712e93cd1ed85 /docs/html/dbdoc.html
parent3208181dc05fa0633e6cde53fec641f1db4b35ef (diff)
downloadbugzilla-6b607da839992bead01d7cba308f216e17eed520.tar.gz
bugzilla-6b607da839992bead01d7cba308f216e17eed520.tar.xz
Documentation update; added docs/sgml, docs/html, docs/txt.
No text version of The Bugzilla Guide availabe yet, however.
Diffstat (limited to 'docs/html/dbdoc.html')
-rw-r--r--docs/html/dbdoc.html509
1 files changed, 509 insertions, 0 deletions
diff --git a/docs/html/dbdoc.html b/docs/html/dbdoc.html
new file mode 100644
index 000000000..b6cefe965
--- /dev/null
+++ b/docs/html/dbdoc.html
@@ -0,0 +1,509 @@
+<HTML
+><HEAD
+><TITLE
+>MySQL Bugzilla Database Introduction</TITLE
+><META
+NAME="GENERATOR"
+CONTENT="Modular DocBook HTML Stylesheet Version 1.61
+"><LINK
+REL="HOME"
+TITLE="The Bugzilla Guide"
+HREF="index.html"><LINK
+REL="UP"
+TITLE="The Bugzilla Database"
+HREF="database.html"><LINK
+REL="PREVIOUS"
+TITLE="Database Schema Chart"
+HREF="dbschema.html"><LINK
+REL="NEXT"
+TITLE="MySQL Permissions & Grant Tables"
+HREF="granttables.html"></HEAD
+><BODY
+CLASS="SECTION"
+BGCOLOR="#FFFFFF"
+TEXT="#000000"
+LINK="#0000FF"
+VLINK="#840084"
+ALINK="#0000FF"
+><DIV
+CLASS="NAVHEADER"
+><TABLE
+WIDTH="100%"
+BORDER="0"
+CELLPADDING="0"
+CELLSPACING="0"
+><TR
+><TH
+COLSPAN="3"
+ALIGN="center"
+>The Bugzilla Guide</TH
+></TR
+><TR
+><TD
+WIDTH="10%"
+ALIGN="left"
+VALIGN="bottom"
+><A
+HREF="dbschema.html"
+>Prev</A
+></TD
+><TD
+WIDTH="80%"
+ALIGN="center"
+VALIGN="bottom"
+>Appendix B. The Bugzilla Database</TD
+><TD
+WIDTH="10%"
+ALIGN="right"
+VALIGN="bottom"
+><A
+HREF="granttables.html"
+>Next</A
+></TD
+></TR
+></TABLE
+><HR
+ALIGN="LEFT"
+WIDTH="100%"></DIV
+><DIV
+CLASS="SECTION"
+><H1
+CLASS="SECTION"
+><A
+NAME="DBDOC"
+>B.2. MySQL Bugzilla Database Introduction</A
+></H1
+><P
+CLASS="LITERALLAYOUT"
+><br>
+Contributor(s):&nbsp;&nbsp;Matthew&nbsp;P.&nbsp;Barnson&nbsp;(mbarnson@excitehome.net)<br>
+<br>
+Last&nbsp;update:&nbsp;May&nbsp;16,&nbsp;2000<br>
+<br>
+Changes:<br>
+Version&nbsp;1.0:&nbsp;Initial&nbsp;public&nbsp;release&nbsp;(May&nbsp;16,&nbsp;2000)<br>
+<br>
+Maintainer:&nbsp;&nbsp;Matthew&nbsp;P.&nbsp;Barnson&nbsp;(mbarnson@excitehome.net)<br>
+<br>
+<br>
+===<br>
+Table&nbsp;Of&nbsp;Contents<br>
+===<br>
+<br>
+FOREWORD<br>
+INTRODUCTION<br>
+THE&nbsp;BASICS<br>
+THE&nbsp;TABLES<br>
+THE&nbsp;DETAILS<br>
+<br>
+<br>
+<br>
+===<br>
+FOREWORD<br>
+===<br>
+<br>
+&nbsp;&nbsp;This&nbsp;information&nbsp;comes&nbsp;straight&nbsp;from&nbsp;my&nbsp;life.&nbsp;&nbsp;I&nbsp;was&nbsp;forced&nbsp;to&nbsp;learn&nbsp;how<br>
+Bugzilla&nbsp;organizes&nbsp;database&nbsp;because&nbsp;of&nbsp;nitpicky&nbsp;requests&nbsp;from&nbsp;users&nbsp;for&nbsp;tiny<br>
+changes&nbsp;in&nbsp;wording,&nbsp;rather&nbsp;than&nbsp;having&nbsp;people&nbsp;re-educate&nbsp;themselves&nbsp;or<br>
+figure&nbsp;out&nbsp;how&nbsp;to&nbsp;work&nbsp;our&nbsp;procedures&nbsp;around&nbsp;the&nbsp;tool.&nbsp;&nbsp;It&nbsp;sucks,&nbsp;but&nbsp;it&nbsp;can<br>
+and&nbsp;will&nbsp;happen&nbsp;to&nbsp;you,&nbsp;so&nbsp;learn&nbsp;how&nbsp;the&nbsp;schema&nbsp;works&nbsp;and&nbsp;deal&nbsp;with&nbsp;it&nbsp;when&nbsp;it<br>
+comes.<br>
+<br>
+&nbsp;&nbsp;I'm&nbsp;sorry&nbsp;this&nbsp;version&nbsp;is&nbsp;plain&nbsp;text.&nbsp;&nbsp;I&nbsp;can&nbsp;whip&nbsp;this&nbsp;info&nbsp;out&nbsp;a&nbsp;lot&nbsp;faster<br>
+if&nbsp;I'm&nbsp;not&nbsp;concerned&nbsp;about&nbsp;complex&nbsp;formatting.&nbsp;&nbsp;I'll&nbsp;get&nbsp;it&nbsp;into&nbsp;sgml&nbsp;for&nbsp;easy<br>
+portability&nbsp;as&nbsp;time&nbsp;permits.<br>
+<br>
+&nbsp;&nbsp;The&nbsp;Bugzilla&nbsp;Database&nbsp;Schema&nbsp;has&nbsp;a&nbsp;home!&nbsp;&nbsp;In&nbsp;addition&nbsp;to&nbsp;availability&nbsp;via&nbsp;CVS<br>
+and&nbsp;released&nbsp;versions&nbsp;2.12&nbsp;and&nbsp;higher&nbsp;of&nbsp;Bugzilla,&nbsp;you&nbsp;can&nbsp;find&nbsp;the&nbsp;latest&nbsp;&#38;<br>
+greatest&nbsp;version&nbsp;of&nbsp;the&nbsp;Bugzilla&nbsp;Database&nbsp;Schema&nbsp;at<br>
+http://www.trilobyte.net/barnsons/.&nbsp;This&nbsp;is&nbsp;a&nbsp;living&nbsp;document;&nbsp;please&nbsp;be&nbsp;sure<br>
+you&nbsp;are&nbsp;up-to-date&nbsp;with&nbsp;the&nbsp;latest&nbsp;version&nbsp;before&nbsp;mirroring.<br>
+<br>
+&nbsp;&nbsp;The&nbsp;Bugzilla&nbsp;Database&nbsp;Schema&nbsp;is&nbsp;designed&nbsp;to&nbsp;provide&nbsp;vital&nbsp;information<br>
+regarding&nbsp;the&nbsp;structure&nbsp;of&nbsp;the&nbsp;MySQL&nbsp;database.&nbsp;&nbsp;Where&nbsp;appropriate,&nbsp;this<br>
+document&nbsp;will&nbsp;refer&nbsp;to&nbsp;URLs&nbsp;rather&nbsp;than&nbsp;including&nbsp;documents&nbsp;in&nbsp;their&nbsp;entirety<br>
+to&nbsp;ensure&nbsp;completeness&nbsp;even&nbsp;should&nbsp;this&nbsp;paper&nbsp;become&nbsp;out&nbsp;of&nbsp;date.<br>
+<br>
+&nbsp;&nbsp;This&nbsp;document&nbsp;is&nbsp;not&nbsp;maintained&nbsp;by&nbsp;Netscape&nbsp;or&nbsp;Netscape&nbsp;employees,&nbsp;so&nbsp;please<br>
+do&nbsp;not&nbsp;contact&nbsp;them&nbsp;regarding&nbsp;errors&nbsp;or&nbsp;omissions&nbsp;contained&nbsp;herein.&nbsp;Please<br>
+direct&nbsp;all&nbsp;questions,&nbsp;comments,&nbsp;updates,&nbsp;flames,&nbsp;etc.&nbsp;to&nbsp;Matthew&nbsp;P.&nbsp;Barnson<br>
+mbarnson@excitehome.net)&nbsp;(barnboy&nbsp;or&nbsp;barnhome&nbsp;on&nbsp;irc.mozilla.org&nbsp;in<br>
+#mozwebtools).<br>
+<br>
+&nbsp;&nbsp;I'm&nbsp;sure&nbsp;I've&nbsp;made&nbsp;some&nbsp;glaring&nbsp;errors&nbsp;or&nbsp;omissions&nbsp;in&nbsp;this&nbsp;paper&nbsp;--&nbsp;please<br>
+email&nbsp;me&nbsp;corrections&nbsp;or&nbsp;post&nbsp;corrections&nbsp;to&nbsp;the<br>
+netscape.public.mozilla.webtools&nbsp;newsgroup.<br>
+<br>
+<br>
+<br>
+===<br>
+INTRODUCTION<br>
+===<br>
+<br>
+<br>
+<br>
+&nbsp;&nbsp;So,&nbsp;here&nbsp;you&nbsp;are&nbsp;with&nbsp;your&nbsp;brand-new&nbsp;installation&nbsp;of&nbsp;Bugzilla.&nbsp;&nbsp;You've&nbsp;got<br>
+MySQL&nbsp;set&nbsp;up,&nbsp;Apache&nbsp;working&nbsp;right,&nbsp;Perl&nbsp;DBI&nbsp;and&nbsp;DBD&nbsp;talking&nbsp;to&nbsp;the&nbsp;database<br>
+flawlessly.&nbsp;&nbsp;Maybe&nbsp;you've&nbsp;even&nbsp;entered&nbsp;a&nbsp;few&nbsp;test&nbsp;bugs&nbsp;to&nbsp;make&nbsp;sure&nbsp;email's<br>
+working;&nbsp;people&nbsp;seem&nbsp;to&nbsp;be&nbsp;notified&nbsp;of&nbsp;new&nbsp;bugs&nbsp;and&nbsp;changes,&nbsp;and&nbsp;you&nbsp;can<br>
+enter&nbsp;and&nbsp;edit&nbsp;bugs&nbsp;to&nbsp;your&nbsp;heart's&nbsp;content.&nbsp;&nbsp;Perhaps&nbsp;you've&nbsp;gone&nbsp;through&nbsp;the<br>
+trouble&nbsp;of&nbsp;setting&nbsp;up&nbsp;a&nbsp;gateway&nbsp;for&nbsp;people&nbsp;to&nbsp;submit&nbsp;bugs&nbsp;to&nbsp;your&nbsp;database&nbsp;via<br>
+email,&nbsp;have&nbsp;had&nbsp;a&nbsp;few&nbsp;people&nbsp;test&nbsp;it,&nbsp;and&nbsp;received&nbsp;rave&nbsp;reviews&nbsp;from&nbsp;your&nbsp;beta<br>
+testers.<br>
+<br>
+&nbsp;&nbsp;What's&nbsp;the&nbsp;next&nbsp;thing&nbsp;you&nbsp;do?&nbsp;&nbsp;Outline&nbsp;a&nbsp;training&nbsp;strategy&nbsp;for&nbsp;your<br>
+development&nbsp;team,&nbsp;of&nbsp;course,&nbsp;and&nbsp;bring&nbsp;them&nbsp;up&nbsp;to&nbsp;speed&nbsp;on&nbsp;the&nbsp;new&nbsp;tool&nbsp;you've<br>
+labored&nbsp;over&nbsp;for&nbsp;hours.<br>
+<br>
+&nbsp;&nbsp;Your&nbsp;first&nbsp;training&nbsp;session&nbsp;starts&nbsp;off&nbsp;very&nbsp;well!&nbsp;&nbsp;You&nbsp;have&nbsp;a&nbsp;captive<br>
+audience&nbsp;which&nbsp;seems&nbsp;enraptured&nbsp;by&nbsp;the&nbsp;efficiency&nbsp;embodied&nbsp;in&nbsp;this&nbsp;thing&nbsp;called<br>
+"Bugzilla".&nbsp;&nbsp;You&nbsp;are&nbsp;caught&nbsp;up&nbsp;describing&nbsp;the&nbsp;nifty&nbsp;features,&nbsp;how&nbsp;people&nbsp;can<br>
+save&nbsp;favorite&nbsp;queries&nbsp;in&nbsp;the&nbsp;database,&nbsp;set&nbsp;them&nbsp;up&nbsp;as&nbsp;headers&nbsp;and&nbsp;footers&nbsp;on<br>
+their&nbsp;pages,&nbsp;customize&nbsp;their&nbsp;layouts,&nbsp;generate&nbsp;reports,&nbsp;track&nbsp;status&nbsp;with<br>
+greater&nbsp;efficiency&nbsp;than&nbsp;ever&nbsp;before,&nbsp;leap&nbsp;tall&nbsp;buildings&nbsp;with&nbsp;a&nbsp;single&nbsp;bound<br>
+and&nbsp;rescue&nbsp;Jane&nbsp;from&nbsp;the&nbsp;clutches&nbsp;of&nbsp;Certain&nbsp;Death!<br>
+<br>
+&nbsp;&nbsp;But&nbsp;Certain&nbsp;Death&nbsp;speaks&nbsp;up&nbsp;--&nbsp;a&nbsp;tiny&nbsp;voice,&nbsp;from&nbsp;the&nbsp;dark&nbsp;corners&nbsp;of&nbsp;the<br>
+conference&nbsp;room.&nbsp;&nbsp;"I&nbsp;have&nbsp;a&nbsp;concern,"&nbsp;the&nbsp;voice&nbsp;hisses&nbsp;from&nbsp;the&nbsp;darkness,<br>
+"about&nbsp;the&nbsp;use&nbsp;of&nbsp;the&nbsp;word&nbsp;'verified'.<br>
+<br>
+&nbsp;&nbsp;The&nbsp;room,&nbsp;previously&nbsp;filled&nbsp;with&nbsp;happy&nbsp;chatter,&nbsp;lapses&nbsp;into&nbsp;reverential<br>
+silence&nbsp;as&nbsp;Certain&nbsp;Death&nbsp;(better&nbsp;known&nbsp;as&nbsp;the&nbsp;Vice&nbsp;President&nbsp;of&nbsp;Software<br>
+Engineering)&nbsp;continues.&nbsp;&nbsp;"You&nbsp;see,&nbsp;for&nbsp;two&nbsp;years&nbsp;we've&nbsp;used&nbsp;the&nbsp;word&nbsp;'verified'<br>
+to&nbsp;indicate&nbsp;that&nbsp;a&nbsp;developer&nbsp;or&nbsp;quality&nbsp;assurance&nbsp;engineer&nbsp;has&nbsp;confirmed&nbsp;that,<br>
+in&nbsp;fact,&nbsp;a&nbsp;bug&nbsp;is&nbsp;valid.&nbsp;I&nbsp;don't&nbsp;want&nbsp;to&nbsp;lose&nbsp;two&nbsp;years&nbsp;of&nbsp;training&nbsp;to&nbsp;a<br>
+new&nbsp;software&nbsp;product.&nbsp;&nbsp;You&nbsp;need&nbsp;to&nbsp;change&nbsp;the&nbsp;bug&nbsp;status&nbsp;of&nbsp;'verified'&nbsp;to<br>
+'approved'&nbsp;as&nbsp;soon&nbsp;as&nbsp;possible.&nbsp;To&nbsp;avoid&nbsp;confusion,&nbsp;of&nbsp;course."<br>
+<br>
+&nbsp;&nbsp;Oh&nbsp;no!&nbsp;&nbsp;Terror&nbsp;strikes&nbsp;your&nbsp;heart,&nbsp;as&nbsp;you&nbsp;find&nbsp;yourself&nbsp;mumbling&nbsp;"yes,&nbsp;yes,&nbsp;I<br>
+don't&nbsp;think&nbsp;that&nbsp;would&nbsp;be&nbsp;a&nbsp;problem,"&nbsp;You&nbsp;review&nbsp;the&nbsp;changes&nbsp;with&nbsp;Certain<br>
+Death,&nbsp;and&nbsp;continue&nbsp;to&nbsp;jabber&nbsp;on,&nbsp;"no,&nbsp;it's&nbsp;not&nbsp;too&nbsp;big&nbsp;a&nbsp;change.&nbsp;I&nbsp;mean,&nbsp;we<br>
+have&nbsp;the&nbsp;source&nbsp;code,&nbsp;right?&nbsp;You&nbsp;know,&nbsp;'Use&nbsp;the&nbsp;Source,&nbsp;Luke'&nbsp;and&nbsp;all&nbsp;that...<br>
+no&nbsp;problem,"&nbsp;All&nbsp;the&nbsp;while&nbsp;you&nbsp;quiver&nbsp;inside&nbsp;like&nbsp;a&nbsp;beached&nbsp;jellyfish&nbsp;bubbling,<br>
+burbling,&nbsp;and&nbsp;boiling&nbsp;on&nbsp;a&nbsp;hot&nbsp;Jamaican&nbsp;sand&nbsp;dune...<br>
+<br>
+&nbsp;&nbsp;Thus&nbsp;begins&nbsp;your&nbsp;adventure&nbsp;into&nbsp;the&nbsp;heart&nbsp;of&nbsp;Bugzilla.&nbsp;&nbsp;You've&nbsp;been&nbsp;forced<br>
+to&nbsp;learn&nbsp;about&nbsp;non-portable&nbsp;enum()&nbsp;fields,&nbsp;varchar&nbsp;columns,&nbsp;and&nbsp;tinyint<br>
+definitions.&nbsp;The&nbsp;Adventure&nbsp;Awaits&nbsp;You!<br>
+<br>
+<br>
+<br>
+===<br>
+The&nbsp;Basics<br>
+===<br>
+<br>
+&nbsp;&nbsp;If&nbsp;you&nbsp;were&nbsp;like&nbsp;me,&nbsp;at&nbsp;this&nbsp;point&nbsp;you're&nbsp;totally&nbsp;clueless&nbsp;about&nbsp;the<br>
+internals&nbsp;of&nbsp;MySQL,&nbsp;and&nbsp;if&nbsp;it&nbsp;weren't&nbsp;for&nbsp;this&nbsp;executive&nbsp;order&nbsp;from&nbsp;the&nbsp;Vice<br>
+President&nbsp;you&nbsp;couldn't&nbsp;care&nbsp;less&nbsp;about&nbsp;the&nbsp;difference&nbsp;between&nbsp;a&nbsp;"bigint"&nbsp;and&nbsp;a<br>
+"tinyint"&nbsp;entry&nbsp;in&nbsp;MySQL.&nbsp;&nbsp;I'd&nbsp;refer&nbsp;you&nbsp;first&nbsp;to&nbsp;the&nbsp;MySQL&nbsp;documentation,<br>
+available&nbsp;at&nbsp;http://www.mysql.com/doc.html,&nbsp;but&nbsp;that's&nbsp;mostly&nbsp;a&nbsp;confusing<br>
+morass&nbsp;of&nbsp;high-level&nbsp;database&nbsp;jargon.&nbsp;&nbsp;Here&nbsp;are&nbsp;the&nbsp;basics&nbsp;you&nbsp;need&nbsp;to&nbsp;know<br>
+about&nbsp;the&nbsp;database&nbsp;to&nbsp;proceed:<br>
+<br>
+1.&nbsp;&nbsp;To&nbsp;connect&nbsp;to&nbsp;your&nbsp;database,&nbsp;type&nbsp;"mysql&nbsp;-u&nbsp;root"&nbsp;at&nbsp;the&nbsp;command&nbsp;prompt&nbsp;as<br>
+any&nbsp;user.&nbsp;If&nbsp;this&nbsp;works&nbsp;without&nbsp;asking&nbsp;you&nbsp;for&nbsp;a&nbsp;password,&nbsp;SHAME&nbsp;ON&nbsp;YOU!&nbsp;&nbsp;You<br>
+should&nbsp;have&nbsp;locked&nbsp;your&nbsp;security&nbsp;down&nbsp;like&nbsp;the&nbsp;README&nbsp;told&nbsp;you&nbsp;to.&nbsp;&nbsp;You&nbsp;can<br>
+find&nbsp;details&nbsp;on&nbsp;locking&nbsp;down&nbsp;your&nbsp;database&nbsp;in&nbsp;the&nbsp;Bugzilla&nbsp;FAQ&nbsp;in&nbsp;this<br>
+directory&nbsp;(under&nbsp;"Security"),&nbsp;or&nbsp;more&nbsp;robust&nbsp;security&nbsp;generalities&nbsp;in&nbsp;the<br>
+MySQL&nbsp;searchable&nbsp;documentation&nbsp;at<br>
+http://www.mysql.com/php/manual.php3?section=Privilege_system&nbsp;.<br>
+<br>
+2.&nbsp;&nbsp;You&nbsp;should&nbsp;now&nbsp;be&nbsp;at&nbsp;a&nbsp;prompt&nbsp;that&nbsp;looks&nbsp;like&nbsp;this:<br>
+<br>
+mysql&#62;<br>
+ <br>
+ At&nbsp;the&nbsp;prompt,&nbsp;if&nbsp;"bugs"&nbsp;is&nbsp;the&nbsp;name&nbsp;of&nbsp;your&nbsp;Bugzilla&nbsp;database,&nbsp;type:<br>
+ <br>
+mysql&#62;&nbsp;use&nbsp;bugs;<br>
+ <br>
+ (don't&nbsp;forget&nbsp;the&nbsp;";"&nbsp;at&nbsp;the&nbsp;end&nbsp;of&nbsp;each&nbsp;line,&nbsp;or&nbsp;you'll&nbsp;be&nbsp;kicking&nbsp;yourself<br>
+all&nbsp;the&nbsp;way&nbsp;through&nbsp;this&nbsp;documentation)<br>
+&nbsp;&nbsp;Young&nbsp;Grasshopper,&nbsp;you&nbsp;are&nbsp;now&nbsp;ready&nbsp;for&nbsp;the&nbsp;unveiling&nbsp;of&nbsp;the&nbsp;Bugzilla<br>
+database,&nbsp;in&nbsp;the&nbsp;next&nbsp;section...<br>
+<br>
+<br>
+<br>
+===<br>
+THE&nbsp;TABLES<br>
+===<br>
+<br>
+&nbsp;&nbsp;Imagine&nbsp;your&nbsp;MySQL&nbsp;database&nbsp;as&nbsp;a&nbsp;series&nbsp;of&nbsp;spreadsheets,&nbsp;and&nbsp;you&nbsp;won't&nbsp;be&nbsp;too<br>
+far&nbsp;off.&nbsp;&nbsp;If&nbsp;you&nbsp;use&nbsp;this&nbsp;command:<br>
+<br>
+mysql&#62;&nbsp;show&nbsp;tables&nbsp;from&nbsp;bugs;<br>
+ <br>
+ you'll&nbsp;be&nbsp;able&nbsp;to&nbsp;see&nbsp;all&nbsp;the&nbsp;"spreadsheets"&nbsp;(tables)&nbsp;in&nbsp;your&nbsp;database.&nbsp;&nbsp;Cool,<br>
+huh?&nbsp;&nbsp;It's&nbsp;kinda'&nbsp;like&nbsp;a&nbsp;filesystem,&nbsp;only&nbsp;much&nbsp;faster&nbsp;and&nbsp;more&nbsp;robust.&nbsp;&nbsp;Come<br>
+on,&nbsp;I'll&nbsp;show&nbsp;you&nbsp;more!<br>
+<br>
+&nbsp;&nbsp;From&nbsp;the&nbsp;command&nbsp;issued&nbsp;above,&nbsp;you&nbsp;should&nbsp;now&nbsp;have&nbsp;some&nbsp;output&nbsp;that&nbsp;looks<br>
+like&nbsp;this:<br>
+<br>
++-------------------+<br>
+|&nbsp;Tables&nbsp;in&nbsp;bugs&nbsp;&nbsp;&nbsp;&nbsp;|<br>
++-------------------+<br>
+|&nbsp;attachments&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;|<br>
+|&nbsp;bugs&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;|<br>
+|&nbsp;bugs_activity&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;|<br>
+|&nbsp;cc&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;|<br>
+|&nbsp;components&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;|<br>
+|&nbsp;dependencies&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;|<br>
+|&nbsp;fielddefs&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;|<br>
+|&nbsp;groups&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;|<br>
+|&nbsp;keyworddefs&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;|<br>
+|&nbsp;keywords&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;|<br>
+|&nbsp;logincookies&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;|<br>
+|&nbsp;longdescs&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;|<br>
+|&nbsp;milestones&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;|<br>
+|&nbsp;namedqueries&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;|<br>
+|&nbsp;products&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;|<br>
+|&nbsp;profiles&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;|<br>
+|&nbsp;profiles_activity&nbsp;|<br>
+|&nbsp;shadowlog&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;|<br>
+|&nbsp;versions&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;|<br>
+|&nbsp;votes&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;|<br>
+|&nbsp;watch&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;|<br>
++-------------------+<br>
+<br>
+<br>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;If&nbsp;it&nbsp;doesn't&nbsp;look&nbsp;quite&nbsp;the&nbsp;same,&nbsp;that&nbsp;probably&nbsp;means&nbsp;it's&nbsp;time&nbsp;to<br>
+update&nbsp;this&nbsp;documentation&nbsp;:)<br>
+<br>
+&nbsp;&nbsp;Here's&nbsp;an&nbsp;overview&nbsp;of&nbsp;what&nbsp;each&nbsp;table&nbsp;does.&nbsp;&nbsp;Most&nbsp;columns&nbsp;in&nbsp;each&nbsp;table&nbsp;have<br>
+descriptive&nbsp;names&nbsp;that&nbsp;make&nbsp;it&nbsp;fairly&nbsp;trivial&nbsp;to&nbsp;figure&nbsp;out&nbsp;their&nbsp;jobs.<br>
+<br>
+attachments:&nbsp;This&nbsp;table&nbsp;stores&nbsp;all&nbsp;attachments&nbsp;to&nbsp;bugs.&nbsp;&nbsp;It&nbsp;tends&nbsp;to&nbsp;be&nbsp;your<br>
+largest&nbsp;table,&nbsp;yet&nbsp;also&nbsp;generally&nbsp;has&nbsp;the&nbsp;fewest&nbsp;entries&nbsp;because&nbsp;file<br>
+attachments&nbsp;are&nbsp;so&nbsp;(relatively)&nbsp;large.<br>
+<br>
+bugs:&nbsp;&nbsp;This&nbsp;is&nbsp;the&nbsp;core&nbsp;of&nbsp;your&nbsp;system.&nbsp;&nbsp;The&nbsp;bugs&nbsp;table&nbsp;stores&nbsp;most&nbsp;of&nbsp;the<br>
+current&nbsp;information&nbsp;about&nbsp;a&nbsp;bug,&nbsp;with&nbsp;the&nbsp;exception&nbsp;of&nbsp;the&nbsp;info&nbsp;stored&nbsp;in&nbsp;the<br>
+other&nbsp;tables.<br>
+<br>
+bugs_activity:&nbsp;&nbsp;This&nbsp;stores&nbsp;information&nbsp;regarding&nbsp;what&nbsp;changes&nbsp;are&nbsp;made&nbsp;to&nbsp;bugs<br>
+when&nbsp;--&nbsp;a&nbsp;history&nbsp;file.<br>
+<br>
+cc:&nbsp;&nbsp;This&nbsp;tiny&nbsp;table&nbsp;simply&nbsp;stores&nbsp;all&nbsp;the&nbsp;CC&nbsp;information&nbsp;for&nbsp;any&nbsp;bug&nbsp;which&nbsp;has<br>
+any&nbsp;entries&nbsp;in&nbsp;the&nbsp;CC&nbsp;field&nbsp;of&nbsp;the&nbsp;bug.&nbsp;&nbsp;Note&nbsp;that,&nbsp;like&nbsp;most&nbsp;other&nbsp;tables&nbsp;in<br>
+Bugzilla,&nbsp;it&nbsp;does&nbsp;not&nbsp;refer&nbsp;to&nbsp;users&nbsp;by&nbsp;their&nbsp;user&nbsp;names,&nbsp;but&nbsp;by&nbsp;their&nbsp;unique<br>
+userid,&nbsp;stored&nbsp;as&nbsp;a&nbsp;primary&nbsp;key&nbsp;in&nbsp;the&nbsp;profiles&nbsp;table.<br>
+<br>
+components:&nbsp;This&nbsp;stores&nbsp;the&nbsp;programs&nbsp;and&nbsp;components&nbsp;(or&nbsp;products&nbsp;and<br>
+components,&nbsp;in&nbsp;newer&nbsp;Bugzilla&nbsp;parlance)&nbsp;for&nbsp;Bugzilla.&nbsp;&nbsp;Curiously,&nbsp;the&nbsp;"program"<br>
+(product)&nbsp;field&nbsp;is&nbsp;the&nbsp;full&nbsp;name&nbsp;of&nbsp;the&nbsp;product,&nbsp;rather&nbsp;than&nbsp;some&nbsp;other&nbsp;unique<br>
+identifier,&nbsp;like&nbsp;bug_id&nbsp;and&nbsp;user_id&nbsp;are&nbsp;elsewhere&nbsp;in&nbsp;the&nbsp;database.<br>
+<br>
+dependencies:&nbsp;Stores&nbsp;data&nbsp;about&nbsp;those&nbsp;cool&nbsp;dependency&nbsp;trees.<br>
+<br>
+fielddefs:&nbsp;&nbsp;A&nbsp;nifty&nbsp;table&nbsp;that&nbsp;defines&nbsp;other&nbsp;tables.&nbsp;&nbsp;For&nbsp;instance,&nbsp;when&nbsp;you<br>
+submit&nbsp;a&nbsp;form&nbsp;that&nbsp;changes&nbsp;the&nbsp;value&nbsp;of&nbsp;"AssignedTo"&nbsp;this&nbsp;table&nbsp;allows<br>
+translation&nbsp;to&nbsp;the&nbsp;actual&nbsp;field&nbsp;name&nbsp;"assigned_to"&nbsp;for&nbsp;entry&nbsp;into&nbsp;MySQL.<br>
+<br>
+groups:&nbsp;&nbsp;defines&nbsp;bitmasks&nbsp;for&nbsp;groups.&nbsp;&nbsp;A&nbsp;bitmask&nbsp;is&nbsp;a&nbsp;number&nbsp;that&nbsp;can&nbsp;uniquely<br>
+identify&nbsp;group&nbsp;memberships.&nbsp;&nbsp;For&nbsp;instance,&nbsp;say&nbsp;the&nbsp;group&nbsp;that&nbsp;is&nbsp;allowed&nbsp;to<br>
+tweak&nbsp;parameters&nbsp;is&nbsp;assigned&nbsp;a&nbsp;value&nbsp;of&nbsp;"1",&nbsp;the&nbsp;group&nbsp;that&nbsp;is&nbsp;allowed&nbsp;to&nbsp;edit<br>
+users&nbsp;is&nbsp;assigned&nbsp;a&nbsp;"2",&nbsp;and&nbsp;the&nbsp;group&nbsp;that&nbsp;is&nbsp;allowed&nbsp;to&nbsp;create&nbsp;new&nbsp;groups&nbsp;is<br>
+assigned&nbsp;the&nbsp;bitmask&nbsp;of&nbsp;"4".&nbsp;&nbsp;By&nbsp;uniquely&nbsp;combining&nbsp;the&nbsp;group&nbsp;bitmasks&nbsp;(much<br>
+like&nbsp;the&nbsp;chmod&nbsp;command&nbsp;in&nbsp;UNIX,)&nbsp;you&nbsp;can&nbsp;identify&nbsp;a&nbsp;user&nbsp;is&nbsp;allowed&nbsp;to&nbsp;tweak<br>
+parameters&nbsp;and&nbsp;create&nbsp;groups,&nbsp;but&nbsp;not&nbsp;edit&nbsp;users,&nbsp;by&nbsp;giving&nbsp;him&nbsp;a&nbsp;bitmask&nbsp;of<br>
+"5",&nbsp;or&nbsp;a&nbsp;user&nbsp;allowed&nbsp;to&nbsp;edit&nbsp;users&nbsp;and&nbsp;create&nbsp;groups,&nbsp;but&nbsp;not&nbsp;tweak<br>
+parameters,&nbsp;by&nbsp;giving&nbsp;him&nbsp;a&nbsp;bitmask&nbsp;of&nbsp;"6"&nbsp;Simple,&nbsp;huh?<br>
+&nbsp;&nbsp;If&nbsp;this&nbsp;makes&nbsp;no&nbsp;sense&nbsp;to&nbsp;you,&nbsp;try&nbsp;this&nbsp;at&nbsp;the&nbsp;mysql&nbsp;prompt:<br>
+mysql&#62;&nbsp;select&nbsp;*&nbsp;from&nbsp;groups;<br>
+&nbsp;&nbsp;You'll&nbsp;see&nbsp;the&nbsp;list,&nbsp;it&nbsp;makes&nbsp;much&nbsp;more&nbsp;sense&nbsp;that&nbsp;way.<br>
+<br>
+keyworddefs:&nbsp;&nbsp;Definitions&nbsp;of&nbsp;keywords&nbsp;to&nbsp;be&nbsp;used<br>
+<br>
+keywords:&nbsp;Unlike&nbsp;what&nbsp;you'd&nbsp;think,&nbsp;this&nbsp;table&nbsp;holds&nbsp;which&nbsp;keywords&nbsp;are<br>
+associated&nbsp;with&nbsp;which&nbsp;bug&nbsp;id's.<br>
+<br>
+logincookies:&nbsp;This&nbsp;stores&nbsp;every&nbsp;login&nbsp;cookie&nbsp;ever&nbsp;assigned&nbsp;to&nbsp;you&nbsp;for&nbsp;every<br>
+machine&nbsp;you've&nbsp;ever&nbsp;logged&nbsp;into&nbsp;Bugzilla&nbsp;from.&nbsp;&nbsp;Curiously,&nbsp;it&nbsp;never&nbsp;does&nbsp;any<br>
+housecleaning&nbsp;--&nbsp;I&nbsp;see&nbsp;cookies&nbsp;in&nbsp;this&nbsp;file&nbsp;I've&nbsp;not&nbsp;used&nbsp;for&nbsp;months.&nbsp;&nbsp;However,<br>
+since&nbsp;Bugzilla&nbsp;never&nbsp;expires&nbsp;your&nbsp;cookie&nbsp;(for&nbsp;convenience'&nbsp;sake),&nbsp;it&nbsp;makes<br>
+sense.<br>
+<br>
+longdescs:&nbsp;&nbsp;The&nbsp;meat&nbsp;of&nbsp;bugzilla&nbsp;--&nbsp;here&nbsp;is&nbsp;where&nbsp;all&nbsp;user&nbsp;comments&nbsp;are&nbsp;stored!<br>
+You've&nbsp;only&nbsp;got&nbsp;2^24&nbsp;bytes&nbsp;per&nbsp;comment&nbsp;(it's&nbsp;a&nbsp;mediumtext&nbsp;field),&nbsp;so&nbsp;speak<br>
+sparingly&nbsp;--&nbsp;that's&nbsp;only&nbsp;the&nbsp;amount&nbsp;of&nbsp;space&nbsp;the&nbsp;Old&nbsp;Testament&nbsp;from&nbsp;the&nbsp;Bible<br>
+would&nbsp;take&nbsp;(uncompressed,&nbsp;16&nbsp;megabytes).&nbsp;&nbsp;Each&nbsp;comment&nbsp;is&nbsp;keyed&nbsp;to&nbsp;the<br>
+bug_id&nbsp;to&nbsp;which&nbsp;it's&nbsp;attached,&nbsp;so&nbsp;the&nbsp;order&nbsp;is&nbsp;necessarily&nbsp;chronological,&nbsp;for<br>
+comments&nbsp;are&nbsp;played&nbsp;back&nbsp;in&nbsp;the&nbsp;order&nbsp;in&nbsp;which&nbsp;they&nbsp;are&nbsp;received.<br>
+<br>
+milestones:&nbsp;&nbsp;Interesting&nbsp;that&nbsp;milestones&nbsp;are&nbsp;associated&nbsp;with&nbsp;a&nbsp;specific&nbsp;product<br>
+in&nbsp;this&nbsp;table,&nbsp;but&nbsp;Bugzilla&nbsp;does&nbsp;not&nbsp;yet&nbsp;support&nbsp;differing&nbsp;milestones&nbsp;by<br>
+product&nbsp;through&nbsp;the&nbsp;standard&nbsp;configuration&nbsp;interfaces.<br>
+<br>
+namedqueries:&nbsp;&nbsp;This&nbsp;is&nbsp;where&nbsp;everybody&nbsp;stores&nbsp;their&nbsp;"custom&nbsp;queries".&nbsp;&nbsp;Very<br>
+cool&nbsp;feature;&nbsp;it&nbsp;beats&nbsp;the&nbsp;tar&nbsp;out&nbsp;of&nbsp;having&nbsp;to&nbsp;bookmark&nbsp;each&nbsp;cool&nbsp;query&nbsp;you<br>
+construct.<br>
+<br>
+products:&nbsp;&nbsp;What&nbsp;products&nbsp;you&nbsp;have,&nbsp;whether&nbsp;new&nbsp;bug&nbsp;entries&nbsp;are&nbsp;allowed&nbsp;for&nbsp;the<br>
+product,&nbsp;what&nbsp;milestone&nbsp;you're&nbsp;working&nbsp;toward&nbsp;on&nbsp;that&nbsp;product,&nbsp;votes,&nbsp;etc.&nbsp;&nbsp;It<br>
+will&nbsp;be&nbsp;nice&nbsp;when&nbsp;the&nbsp;components&nbsp;table&nbsp;supports&nbsp;these&nbsp;same&nbsp;features,&nbsp;so&nbsp;you<br>
+could&nbsp;close&nbsp;a&nbsp;particular&nbsp;component&nbsp;for&nbsp;bug&nbsp;entry&nbsp;without&nbsp;having&nbsp;to&nbsp;close&nbsp;an<br>
+entire&nbsp;product...<br>
+<br>
+profiles:&nbsp;&nbsp;Ahh,&nbsp;so&nbsp;you&nbsp;were&nbsp;wondering&nbsp;where&nbsp;your&nbsp;precious&nbsp;user&nbsp;information&nbsp;was<br>
+stored?&nbsp;&nbsp;Here&nbsp;it&nbsp;is!&nbsp;&nbsp;With&nbsp;the&nbsp;passwords&nbsp;in&nbsp;plain&nbsp;text&nbsp;for&nbsp;all&nbsp;to&nbsp;see!&nbsp;(but<br>
+sshh...&nbsp;don't&nbsp;tell&nbsp;your&nbsp;users!)<br>
+<br>
+profiles_activity:&nbsp;&nbsp;Need&nbsp;to&nbsp;know&nbsp;who&nbsp;did&nbsp;what&nbsp;when&nbsp;to&nbsp;who's&nbsp;profile?&nbsp;&nbsp;This'll<br>
+tell&nbsp;you,&nbsp;it's&nbsp;a&nbsp;pretty&nbsp;complete&nbsp;history.<br>
+<br>
+shadowlog:&nbsp;&nbsp;I&nbsp;could&nbsp;be&nbsp;mistaken&nbsp;here,&nbsp;but&nbsp;I&nbsp;believe&nbsp;this&nbsp;table&nbsp;tells&nbsp;you&nbsp;when<br>
+your&nbsp;shadow&nbsp;database&nbsp;is&nbsp;updated&nbsp;and&nbsp;what&nbsp;commands&nbsp;were&nbsp;used&nbsp;to&nbsp;update&nbsp;it.&nbsp;&nbsp;We<br>
+don't&nbsp;use&nbsp;a&nbsp;shadow&nbsp;database&nbsp;at&nbsp;our&nbsp;site&nbsp;yet,&nbsp;so&nbsp;it's&nbsp;pretty&nbsp;empty&nbsp;for&nbsp;us.<br>
+<br>
+versions:&nbsp;&nbsp;Version&nbsp;information&nbsp;for&nbsp;every&nbsp;product<br>
+<br>
+votes:&nbsp;&nbsp;Who&nbsp;voted&nbsp;for&nbsp;what&nbsp;when<br>
+<br>
+watch:&nbsp;&nbsp;Who&nbsp;(according&nbsp;to&nbsp;userid)&nbsp;is&nbsp;watching&nbsp;who's&nbsp;bugs&nbsp;(according&nbsp;to&nbsp;their<br>
+userid).<br>
+<br>
+<br>
+===<br>
+THE&nbsp;DETAILS<br>
+===<br>
+<br>
+&nbsp;&nbsp;Ahh,&nbsp;so&nbsp;you're&nbsp;wondering&nbsp;just&nbsp;what&nbsp;to&nbsp;do&nbsp;with&nbsp;the&nbsp;information&nbsp;above?&nbsp;&nbsp;At&nbsp;the<br>
+mysql&nbsp;prompt,&nbsp;you&nbsp;can&nbsp;view&nbsp;any&nbsp;information&nbsp;about&nbsp;the&nbsp;columns&nbsp;in&nbsp;a&nbsp;table&nbsp;with<br>
+this&nbsp;command&nbsp;(where&nbsp;"table"&nbsp;is&nbsp;the&nbsp;name&nbsp;of&nbsp;the&nbsp;table&nbsp;you&nbsp;wish&nbsp;to&nbsp;view):<br>
+<br>
+mysql&#62;&nbsp;show&nbsp;columns&nbsp;from&nbsp;table;<br>
+<br>
+&nbsp;&nbsp;You&nbsp;can&nbsp;also&nbsp;view&nbsp;all&nbsp;the&nbsp;data&nbsp;in&nbsp;a&nbsp;table&nbsp;with&nbsp;this&nbsp;command:<br>
+<br>
+mysql&#62;&nbsp;select&nbsp;*&nbsp;from&nbsp;table;<br>
+<br>
+&nbsp;&nbsp;--&nbsp;note:&nbsp;this&nbsp;is&nbsp;a&nbsp;very&nbsp;bad&nbsp;idea&nbsp;to&nbsp;do&nbsp;on,&nbsp;for&nbsp;instance,&nbsp;the&nbsp;"bugs"&nbsp;table&nbsp;if<br>
+you&nbsp;have&nbsp;50,000&nbsp;bugs.&nbsp;&nbsp;You'll&nbsp;be&nbsp;sitting&nbsp;there&nbsp;a&nbsp;while&nbsp;until&nbsp;you&nbsp;ctrl-c&nbsp;or<br>
+50,000&nbsp;bugs&nbsp;play&nbsp;across&nbsp;your&nbsp;screen.<br>
+<br>
+&nbsp;&nbsp;You&nbsp;can&nbsp;limit&nbsp;the&nbsp;display&nbsp;from&nbsp;above&nbsp;a&nbsp;little&nbsp;with&nbsp;the&nbsp;command,&nbsp;where<br>
+"column"&nbsp;is&nbsp;the&nbsp;name&nbsp;of&nbsp;the&nbsp;column&nbsp;for&nbsp;which&nbsp;you&nbsp;wish&nbsp;to&nbsp;restrict&nbsp;information:<br>
+<br>
+mysql&#62;&nbsp;select&nbsp;*&nbsp;from&nbsp;table&nbsp;where&nbsp;(column&nbsp;=&nbsp;"some&nbsp;info");<br>
+<br>
+&nbsp;&nbsp;--&nbsp;or&nbsp;the&nbsp;reverse&nbsp;of&nbsp;this<br>
+<br>
+mysql&#62;&nbsp;select&nbsp;*&nbsp;from&nbsp;table&nbsp;where&nbsp;(column&nbsp;!=&nbsp;"some&nbsp;info");<br>
+<br>
+&nbsp;&nbsp;Let's&nbsp;take&nbsp;our&nbsp;example&nbsp;from&nbsp;the&nbsp;introduction,&nbsp;and&nbsp;assume&nbsp;you&nbsp;need&nbsp;to&nbsp;change<br>
+the&nbsp;word&nbsp;"verified"&nbsp;to&nbsp;"approved"&nbsp;in&nbsp;the&nbsp;resolution&nbsp;field.&nbsp;&nbsp;We&nbsp;know&nbsp;from&nbsp;the<br>
+above&nbsp;information&nbsp;that&nbsp;the&nbsp;resolution&nbsp;is&nbsp;likely&nbsp;to&nbsp;be&nbsp;stored&nbsp;in&nbsp;the&nbsp;"bugs"<br>
+table.&nbsp;Note&nbsp;we'll&nbsp;need&nbsp;to&nbsp;change&nbsp;a&nbsp;little&nbsp;perl&nbsp;code&nbsp;as&nbsp;well&nbsp;as&nbsp;this&nbsp;database<br>
+change,&nbsp;but&nbsp;I&nbsp;won't&nbsp;plunge&nbsp;into&nbsp;that&nbsp;in&nbsp;this&nbsp;document.&nbsp;Let's&nbsp;verify&nbsp;the<br>
+information&nbsp;is&nbsp;stored&nbsp;in&nbsp;the&nbsp;"bugs"&nbsp;table:<br>
+<br>
+mysql&#62;&nbsp;show&nbsp;columns&nbsp;from&nbsp;bugs<br>
+<br>
+&nbsp;&nbsp;(exceedingly&nbsp;long&nbsp;output&nbsp;truncated&nbsp;here)<br>
+|&nbsp;bug_status|&nbsp;enum('UNCONFIRMED','NEW','ASSIGNED','REOPENED','RESOLVED','VERIFIED','CLOSED')||MUL&nbsp;|&nbsp;UNCONFIRMED||<br>
+<br>
+&nbsp;&nbsp;Sorry&nbsp;about&nbsp;that&nbsp;long&nbsp;line.&nbsp;&nbsp;We&nbsp;see&nbsp;from&nbsp;this&nbsp;that&nbsp;the&nbsp;"bug&nbsp;status"&nbsp;column&nbsp;is<br>
+an&nbsp;"enum&nbsp;field",&nbsp;which&nbsp;is&nbsp;a&nbsp;MySQL&nbsp;peculiarity&nbsp;where&nbsp;a&nbsp;string&nbsp;type&nbsp;field&nbsp;can<br>
+only&nbsp;have&nbsp;certain&nbsp;types&nbsp;of&nbsp;entries.&nbsp;&nbsp;While&nbsp;I&nbsp;think&nbsp;this&nbsp;is&nbsp;very&nbsp;cool,&nbsp;it's&nbsp;not<br>
+standard&nbsp;SQL.&nbsp;&nbsp;Anyway,&nbsp;we&nbsp;need&nbsp;to&nbsp;add&nbsp;the&nbsp;possible&nbsp;enum&nbsp;field&nbsp;entry<br>
+'APPROVED'&nbsp;by&nbsp;altering&nbsp;the&nbsp;"bugs"&nbsp;table.<br>
+<br>
+mysql&#62;&nbsp;ALTER&nbsp;table&nbsp;bugs&nbsp;CHANGE&nbsp;bug_status&nbsp;bug_status<br>
+&nbsp;&nbsp;&nbsp;&nbsp;-&#62;&nbsp;enum("UNCONFIRMED",&nbsp;"NEW",&nbsp;"ASSIGNED",&nbsp;"REOPENED",&nbsp;"RESOLVED",<br>
+&nbsp;&nbsp;&nbsp;&nbsp;-&#62;&nbsp;"VERIFIED",&nbsp;"APPROVED",&nbsp;"CLOSED")&nbsp;not&nbsp;null;<br>
+<br>
+&nbsp;&nbsp;&nbsp;&nbsp;(note&nbsp;we&nbsp;can&nbsp;take&nbsp;three&nbsp;lines&nbsp;or&nbsp;more&nbsp;--&nbsp;whatever&nbsp;you&nbsp;put&nbsp;in&nbsp;before&nbsp;the<br>
+semicolon&nbsp;is&nbsp;evaluated&nbsp;as&nbsp;a&nbsp;single&nbsp;expression)<br>
+<br>
+Now&nbsp;if&nbsp;you&nbsp;do&nbsp;this:<br>
+<br>
+mysql&#62;&nbsp;show&nbsp;columns&nbsp;from&nbsp;bugs;<br>
+<br>
+&nbsp;&nbsp;you'll&nbsp;see&nbsp;that&nbsp;the&nbsp;bug_status&nbsp;field&nbsp;has&nbsp;an&nbsp;extra&nbsp;"APPROVED"&nbsp;enum&nbsp;that's<br>
+available!&nbsp;&nbsp;Cool&nbsp;thing,&nbsp;too,&nbsp;is&nbsp;that&nbsp;this&nbsp;is&nbsp;reflected&nbsp;on&nbsp;your&nbsp;query&nbsp;page&nbsp;as<br>
+well&nbsp;--&nbsp;you&nbsp;can&nbsp;query&nbsp;by&nbsp;the&nbsp;new&nbsp;status.&nbsp;&nbsp;But&nbsp;how's&nbsp;it&nbsp;fit&nbsp;into&nbsp;the&nbsp;existing<br>
+scheme&nbsp;of&nbsp;things?<br>
+&nbsp;&nbsp;Looks&nbsp;like&nbsp;you&nbsp;need&nbsp;to&nbsp;go&nbsp;back&nbsp;and&nbsp;look&nbsp;for&nbsp;instances&nbsp;of&nbsp;the&nbsp;word&nbsp;"verified"<br>
+in&nbsp;the&nbsp;perl&nbsp;code&nbsp;for&nbsp;Bugzilla&nbsp;--&nbsp;wherever&nbsp;you&nbsp;find&nbsp;"verified",&nbsp;change&nbsp;it&nbsp;to<br>
+"approved"&nbsp;and&nbsp;you're&nbsp;in&nbsp;business&nbsp;(make&nbsp;sure&nbsp;that's&nbsp;a&nbsp;case-insensitive&nbsp;search).<br>
+Although&nbsp;you&nbsp;can&nbsp;query&nbsp;by&nbsp;the&nbsp;enum&nbsp;field,&nbsp;you&nbsp;can't&nbsp;give&nbsp;something&nbsp;a&nbsp;status<br>
+of&nbsp;"APPROVED"&nbsp;until&nbsp;you&nbsp;make&nbsp;the&nbsp;perl&nbsp;changes.&nbsp;&nbsp;&nbsp;Note&nbsp;that&nbsp;this&nbsp;change&nbsp;I<br>
+mentioned&nbsp;can&nbsp;also&nbsp;be&nbsp;done&nbsp;by&nbsp;editing&nbsp;checksetup.pl,&nbsp;which&nbsp;automates&nbsp;a&nbsp;lot&nbsp;of<br>
+this.&nbsp;&nbsp;But&nbsp;you&nbsp;need&nbsp;to&nbsp;know&nbsp;this&nbsp;stuff&nbsp;anyway,&nbsp;right?<br>
+<br>
+&nbsp;&nbsp;I&nbsp;hope&nbsp;this&nbsp;database&nbsp;tutorial&nbsp;has&nbsp;been&nbsp;useful&nbsp;for&nbsp;you.&nbsp;&nbsp;If&nbsp;you&nbsp;have&nbsp;comments<br>
+to&nbsp;add,&nbsp;questions,&nbsp;concerns,&nbsp;etc.&nbsp;please&nbsp;direct&nbsp;them&nbsp;to<br>
+mbarnson@excitehome.net.&nbsp;&nbsp;Please&nbsp;direct&nbsp;flames&nbsp;to&nbsp;/dev/null&nbsp;:)&nbsp;&nbsp;Have&nbsp;a&nbsp;nice<br>
+day!<br>
+<br>
+<br>
+<br>
+===<br>
+LINKS<br>
+===<br>
+<br>
+Great&nbsp;MySQL&nbsp;tutorial&nbsp;site:<br>
+http://www.devshed.com/Server_Side/MySQL/<br>
+<br>
+&nbsp;&nbsp;&nbsp;&nbsp;</P
+></DIV
+><DIV
+CLASS="NAVFOOTER"
+><HR
+ALIGN="LEFT"
+WIDTH="100%"><TABLE
+WIDTH="100%"
+BORDER="0"
+CELLPADDING="0"
+CELLSPACING="0"
+><TR
+><TD
+WIDTH="33%"
+ALIGN="left"
+VALIGN="top"
+><A
+HREF="dbschema.html"
+>Prev</A
+></TD
+><TD
+WIDTH="34%"
+ALIGN="center"
+VALIGN="top"
+><A
+HREF="index.html"
+>Home</A
+></TD
+><TD
+WIDTH="33%"
+ALIGN="right"
+VALIGN="top"
+><A
+HREF="granttables.html"
+>Next</A
+></TD
+></TR
+><TR
+><TD
+WIDTH="33%"
+ALIGN="left"
+VALIGN="top"
+>Database Schema Chart</TD
+><TD
+WIDTH="34%"
+ALIGN="center"
+VALIGN="top"
+><A
+HREF="database.html"
+>Up</A
+></TD
+><TD
+WIDTH="33%"
+ALIGN="right"
+VALIGN="top"
+>MySQL Permissions &#38; Grant Tables</TD
+></TR
+></TABLE
+></DIV
+></BODY
+></HTML
+> \ No newline at end of file