Search Postgresql Archives

Re: "advanced" database design (long)

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



SunWuKung wrote:
I always thought that having nullable columns in a table is a Bad
Thing (http://technet.microsoft.com/en-us/library/ms191178.aspx) and

Ridiculous. The argument provided in that article is specious and likely SQL Server-specific. NULLable columns should occur wherever your data model calls for them, typically when you want to have a marker for "unknown" data. The advice in that article to move NULLable columns off to a separate table will actually cause worse, manual "special handling that increases the complexity of data operations" than the built-in and optimized handling the engine provides for NULLs. You should ignore this terrible advice.

shows that you try to put different type of entities into the same
table - having 90 in a column ... brrrrr.

Is that a technical evaluation? As another respondent stated upthread, 90 NULLable columns is possibly a sign of a bad data model.

I think its much better to avoid it whenever you have the info but
when you don't you just have to use the EAV model.

Also ridiculous.  You should never "have to use" the EAV so-called "model".

E.g. If I knew what info I wanted to store on a person I could create
columns for that, but since in our application users create the
questionnaires that is used to store info on persons I see little
choice - I must have a subjectID, questionID, value table.

That's not EAV. When you're modeling a questionnaire, "subject", "question" and "answer" (as I interpret your meaning for "value" here) is natural. EAV would have a row with "question" as a value in a column, not the name of a column as you suggest.

It's very hard to actually think in EAV. The mind naturally thinks of things like "question" being a column, but in EAV that wouldn't be; "question" would be a value of a generic column in some row that represents a fragment of the question being described. The difficulty of conceptualizing data structures as EAV is one of the big strikes against it. The quoted citation evidences that difficulty quite well - even trying to come up with an example of an EAV structure wound up with a non-EAV description.

--
Lew

---------------------------(end of broadcast)---------------------------
TIP 5: don't forget to increase your free space map settings

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Index of Archives]     [Postgresql Jobs]     [Postgresql Admin]     [Postgresql Performance]     [Linux Clusters]     [PHP Home]     [PHP on Windows]     [Kernel Newbies]     [PHP Classes]     [PHP Books]     [PHP Databases]     [Postgresql & PHP]     [Yosemite]
  Powered by Linux