As discussed in thread1575-1532816: A Disscussion On Where To Start? we are going to have a fairly complex data store, hereafter referred to as The Dictionary.
Now, The Dictionary can be anything from text files, INI files, DAT files, to dBase files (or Fox Pro), to an Access database, MySQL or even SQL. Now as for its structure I propose the following structure (based on an Access db).
tblWordsPhrases iWordID Auto Number Indexed (No Duplicates) iLenght Number Indexed (Allow Duplicates) vWord Text (255 characters)Not Indexed (No Duplicates)*
*vWord uniqueness is kept via business rule within program/sub program as new words or phrases are added in.
tblDefinitions iDefID Auto Number Indexed (No Duplicates) iWordID Number Indexed (Allow Duplicates)* iDefNo Number Indexed (Allow Duplicates)** mDef Memo
*iWordID is used as foreign key **iDefNo is use as you would see in a dictionary when a word has multiple meanings or definitions
tblSubWords iSubID Auto Number Indexed (No Duplicates) iPWordID Number Indexed (Allow Duplicates)* iSWordID Number Indexed (Allow Duplicates)**
*iPWordID is used as a business rule foreign key to tblWordsPhrases.iWordID enforced within the program/sub program and points to those "Parent" words that are to be used for mixing the letters up for the jumble program (to be discussed sometime in future) **iSWordID is used as a business rule foreign key to tblWordsPhrases.iWordID enforced within the program/sub program and points to those "Sub" words or words that can be made from the letters of the "Parent" word
tblThesaurus iTheoID Auto Number Indexed (No Duplicates) iPWordID Number Indexed (Allow Duplicates)* iSWordID Number Indexed (Allow Duplicates)**
Note: Thought about an iOrder field as some thesaurus's have the most similar meaning words first and going on from there but if we follow this rule and use that order then we only need to use the iTheoID field to order by.
*iPWordID is as above for tblSubWords but this table is not for mixing the letters of a word up **iSWordID is as above for tblSubWords but this field points back to words that have a similar meaning to the word that is pointed to by iPWordID
tblGenHint iHintID Auto Number Indexed (No Duplicates) iWordID Number Indexed (Allow Duplicates)* vHint Text (255 Characters) Not Indexed (Allow Duplicates)**
Note: See note for tblThesaurus *iWordID, Foreign Key **vHint, contains the text of the hint to what iWordID points to
tblHint iHintID Auto Number Indexed (No Duplicates) iWordID Number Indexed (Allow Duplicates)* vHint Text (255 Characters) Not Indexed (Allow Duplicates)**
Note: See note for tblThesaurus *iWordID, Foreign Key **vHint, contains the text of the hint to what iWordID points to
tblCWSub iCWSubID Auto Number Indexed (No Duplicates) vCWSubject Text (255 Characters) Not Indexed (No Duplicates)*
*vCWSubject, Crossword subject
tblCWWords iCWWordID Auto Number Indexed (No Duplicates) iCWSubID Number Indexed (Allow Duplicates)* iWordID Number Indexed (Allow Duplicates)** vHint Text (255 Characters) Not Indexed (Allow Duplicates)***
*iCWSubID, foreign key to tblCWSub.iSubID **iWordID, foreign key to tblWordsPhrases.iWordID ***vHint, contains the text of the hint to what iWordID points to
tblJQ iJQID Auto Number Indexed (No Duplicates) iWordID Number Indexed (Allow Duplicates) vQA Memo Not Indexed (Allow Duplicates)
Now, I am trying to get people to discuss various things about games in this forum, so if you have any questions please ask. If you have an idea for a word game and do not know how exactly it would work with these tables, please describe your game and hopefully one of us will be able to design or modify a table(s) above to suit that game.
Following is a list of games that I believe the above (off the cuff) design will work for. Hangman Word Jumble (make smaller words from larger word) Word Scramble (puzzle where user needs to find words within a X by Y block of letters) Wheel of Fortune Jeopardy Scrabble Crosswords
Any other ideas? |
|