Here is a specific question about how I should represent a real life situation with database design.
The book list I'm working with has many examples of book titles shared by many books where there are many different parameters which may differentiate between them and some of those parameters are used very rarely.
For example. A particular book may be the third volume of a set. In this case "title" would be the same for all volumes and the volume number would differentiate it from the other volumes. It would be nice to have a numerical field so that ordering the volumes numerically will be simple.
Another title may come in different colors, although this is rarely the case. If I have a size field in the issueDetails table it will contian a value for a tiny percentage of the listings.
Size variation is a bit more common, but many titles have their own distinct names for the size values. One title may have large, medium and pocket size. Another would have full size and student edition. Is it worthwile creating a size and color fields when they will be used with a very small percentage of listings?
Alernatively, I could create a detailHighlights field for text values that differentiate the issues sharing title and subtitle in whatever way is appropriate for in each case. "student-size / green" or "pocket-size / three volume slip-case" This way the values differentiating each item would be contained in a single field that would have a value in most cases.
What do you suggest? Are there issues I'm missing here?
books
------
bookID
title
subtitle
shortDescription
longDescription
imageFile
publisherID
issueDetails
-------------
issueDetailsID
isbn
binding
==========
(detailHighlights)
or
(color)
(size)
(numberOfVolumes)
=============
weight
dimensions
NumberOfPages
volumeNumber
ShippingWeightCodeID
outOfStock
price
The book list I'm working with has many examples of book titles shared by many books where there are many different parameters which may differentiate between them and some of those parameters are used very rarely.
For example. A particular book may be the third volume of a set. In this case "title" would be the same for all volumes and the volume number would differentiate it from the other volumes. It would be nice to have a numerical field so that ordering the volumes numerically will be simple.
Another title may come in different colors, although this is rarely the case. If I have a size field in the issueDetails table it will contian a value for a tiny percentage of the listings.
Size variation is a bit more common, but many titles have their own distinct names for the size values. One title may have large, medium and pocket size. Another would have full size and student edition. Is it worthwile creating a size and color fields when they will be used with a very small percentage of listings?
Alernatively, I could create a detailHighlights field for text values that differentiate the issues sharing title and subtitle in whatever way is appropriate for in each case. "student-size / green" or "pocket-size / three volume slip-case" This way the values differentiating each item would be contained in a single field that would have a value in most cases.
What do you suggest? Are there issues I'm missing here?
books
------
bookID
title
subtitle
shortDescription
longDescription
imageFile
publisherID
issueDetails
-------------
issueDetailsID
isbn
binding
==========
(detailHighlights)
or
(color)
(size)
(numberOfVolumes)
=============
weight
dimensions
NumberOfPages
volumeNumber
ShippingWeightCodeID
outOfStock
price