Index  Comments

Long ago, I read an article written by a fool, regarding the proper design of a medical database. I read an article that took simple scalar information and changed most of it to be general references.

A proper such system takes pains to compress common data patterns. People of the same race are more alike than some would care to say, even sharing just culture has some similar effects, and all types of humans have certain characteristics in common, even despite the numerous tiny, large differences.

The population of the United States of America is far below one billion people. Thus, a twenty-nine bit number is more than large enough to hold them, although a thirty bit number would be better. It follows there are fewer full names than people, even accounting for the dead. System designers have the power to shove ideas where they don't belong, but they also have the power to enforce some ideas of normalcy, or to make certain kinds of people entirely unrepresentable. Most names are shared and shared widely, so it makes perfect sense for the mirage of unique names to be discarded first; so it follows a similar number may be used to index a pool of names for the first, last, and middle names; separate name pools with overlap may be reasonable for storage, which allows for reuse between them.

The domains of natural eye, skin, and hair colours are well-known, allowing for very tiny numbers to index them; height is similarly small in range, like age; sex would be a Boolean value; fortunately, humans die horrible deaths before reaching weights which would make appropriate modelling difficult.

It would be best to avoid having a ``no one'' in the system; there are methods outlined in my recent ``Linking Sentinels'' article for avoiding no one. It's not strictly inappropriate, when no one can have sensible characteristics, but what colour are the eyes of no one, how much would he weigh, what age is no one; no one taints the entire system so long as no one has any say in it; still, as no one is married to no one, any unmarried man could have his spouse field filled with himself, and this is likewise applicable to storing blood relationships as a circular linked-list; unfortunately, this is insufficient for preventing the expression of relationships like incest, polygamy, or homosexuality, although it's also flexible enough to accommodate them if they do become legal, so it's not all bad.

The domain of personal injuries is too vast to accommodate such uniformity, however. It should only be referenced from a record, and it should be a linked-list. Modelling individual injuries could be done similarly to individuals, however; bone fractures tend to be like other bone fractures, missing organs are often missing no differently than any other organ would be, and this mode goes on and on.

This system is inadequate for a very small amount of the population; some humans are born as mutants who fall out of the realm of normal descriptions and probably out of the realm of normal processing. The solution for this extreme minority is a separate table which can accommodate the descriptions of them, and not disadvantaging everyone else for their sake; this also greatly simplifies programming, as common operations on common people are easier to do than operations which must concern themselves with mutants who have two heads, inconclusive genitals, malformed skeletons, or other oddities. The general operations would be ofttimes impossible, taking such things into account, but this obviously means not that the operations are useless or meaningless. There ofttimes would be little processing reasonable to use on the mutants anyway, and this is place for ``human touch'' to touch the inhuman.

Normalcy permits automation, and the deeply abnormal should enjoy rather than scorn this basic fact.