Level Extreme platform
Subscription
Corporate profile
Products & Services
Support
Legal
Français
DB Design Question
Message
General information
Forum:
Visual FoxPro
Category:
Databases,Tables, Views, Indexing and SQL syntax
Miscellaneous
Thread ID:
00815677
Message ID:
00815725
Views:
16
Hi Eric,

In my opinion option 2 is the only way to go... I would not even consider option 1.

Do you use any modeling tools for designing database? Check out my recent thread about Modeling tools. I have to admit, I only used Visio so far...

>I have a process that I'm automating. It's a dorm room check in/out process. When students move in or out of a room they fill out a form that indicates the status of the room, ex, bed, bookcase, ceiling, closet etc... Each item is indicated by a poor, good, new, or needs repair status and there is a space to enter comments on each item. Also, each check in/out has to be related to a studentID.
>
>How could I construct a solid db for this process. I have a couple different ideas so I need a second or third opinion.
>RCI stands for room condition inventory.
>
>
>Option 1
>
>rci
>--------------------------
>rciID int identity
>studentID int //FK to students.studentID
>rciType int //(checkin or checkout)
>bedframe int or char(1)
>bedmattress int or char(1)
>badmattresspad int or char(1)
>bookcase int or char(1)
>ceiling int or char(1)
>closet int or char(1)
>...
>bedframecomments varchar(4000)
>bedmattresscomments varchar(4000)
>badmattresspadcommentsvarchar(4000)
>bookcasecomments varchar(4000)
>ceilingcomments varchar(4000)
>closetcomments varchar(4000)
>...
>
>//would not need if i use char in the rci table because I could just store [P, G, N, R] for each type of status
>rciStatusOptions - store an id for each status type, poor, new, good, needs repair
>------------------------------
>rciStatusID int identity
>rciStatusDesc varchar(50)
>
>The major problem with this is that the rci table will have 3 + 38 x 2 = 79 columns! I dont want to do this. Another option is.
>
>
>Option 2 is a little more complicated but it is more normalized
>
>rci
>------------------
>rciID int identity
>studentID int //FK to students.studentID
>rciType int //checkin or checkout
>
>
>rciItemStatus -- contains a row for each item for each student rows = # of items on the form X number of students = alot of rows (approx 500K)
>------------------
>rciItemID int identity
>rciID int //fk to rci.rciID
>rciItemID int /fk to rciItems.rciItemID
>status int or char(1)
>comments varchar(4000)
>
>
>rciItems -- Contais a record for each item that appears on the form. about 30 rows
>------------------
>rciItemID int identity
>itemDescription varchar(100)
>
>
>//would not need if i use char in the rciItemStatus table because I could just store [P, G, N, R] for each type of status
>rciStatusOptions - store an id for each status type, like poor, new, good, needs repair
>------------------------------
>rciStatusID int identity
>rciStatusDesc varchar(50)
>
>
>I'm already leaning toward option 2, but if anyone has a better idea let me know please. TIA - Eric
If it's not broken, fix it until it is.


My Blog
Previous
Next
Reply
Map
View

Click here to load this message in the networking platform