| FaqUser | Role | Project | Faq | Question | Answer | Attachment | |
|---|---|---|---|---|---|---|---|
| FaqUser | N:N | N:N | 1:N | 1:N | 1:N | ||
| Role | N:N | ||||||
| Project | N:N | 1:N | |||||
| Faq | N:1 | 1:N | |||||
| Question | N:1 | N:1 | 1:N | ||||
| Answer | N:1 | N:1 | 1:N | ||||
| Attachment | N:1 | N:1 |
Note: To resolve the many-to-many relationship between the FaqUser and Project entities, we create an intermediate (i.e., associative) entity called the UserProject. See the E-R Diagram below.
In this diagram, we follow conventions outlined in the article at http://www.utexas.edu/cc/database/datamodeling/index.html. The image of the diagram was produced by dia-0.90, a free software package that you can download from http://freshmeat.net.
The following table shows what size limitations exist for certain entity fields, depending on the database vendor:
| Entity | Field | MySQL | PostgreSQL |
|---|---|---|---|
| FaqUser | logon | 32 chars | 32 chars |
| FaqUser | password | 32 chars | 32 chars |
| FaqUser | 128 chars | 128 chars | |
| Role | role | 32 chars | 32 chars |
| Project | name | 64 chars | 64 chars |
| Faq | name | 64 chars | 64 chars |
| Question | question | 64 Kb | Unknown |
| Answer | answer | 64 Kb | Unknown |
| Attachment | attachment | 16 Mb | Unknown |
| Attachment | fileName | 128 chars | 128 chars |
| Attachment | fileType | 64 chars | 64 chars |