проектирование схемы базы данных - PullRequest
1 голос
/ 18 мая 2011

Я пытаюсь разработать схему базы данных. Теперь у меня есть одна статья А, а затем у меня есть ряд статей, связанных с ней.

Какой из подходов мне следует использовать?

ArticleID, ArticleName, RelatedArticles (Связанная статья - разделенные запятыми значения articleid_

ИЛИ У меня может быть 2 таблицы следующим образом: Article

ArticleID, ArticleName

RelatedArticle
ArticleId,RelatedArticleID 

, и я могу легко запросить как select * from article a,RelatedArticle a where a.ArticleID = b.ArticleID.

Как я могу это сделать для структуры классов bibernate;

Ответы [ 2 ]

3 голосов
/ 18 мая 2011

Хранение нескольких значений в одном поле противоречит атомарности, необходимой для первой нормальной формы.Это почти всегда плохая идея.

Используйте отдельную таблицу для сопоставления связанных статей.Hibernate должен быть в состоянии справиться с этим, если класс article содержит список связанных статей.

0 голосов
/ 18 мая 2011

Если отношение между статьей и связанными с ней статьями является исключительным родительским, то есть для данной статьи может быть много связанных подстатей, но эти подстатьи не могут быть связаны с какой-либо другой статьей, тогда вы можетеболее простой дизайн с 1 таблицей со столбцами, такими как articleId, ArticleName и parentArticleId (nullable).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...