Концепция реляционной БД - PullRequest
0 голосов
/ 26 августа 2010

Я пытаюсь изложить концепцию реляционной БД, и я столкнулся с некоторыми концептуальными проблемами:

  1. Если у меня есть несколько отдельных сущностей, которые «вложены» друг в друга / имеют иерархию, например ::10000

Боссы могут иметь несколько сотрудников. У этих сотрудников разные проекты, и у одного проекта снова несколько разделов.

So

B1-Bn:

      E1-En

           P1-Pn

                Section1 -SectionN

Как это лучше всего отобразить в базе данных?

Или, другими словами, как лучше всего отобразить эту иерархию в реляционном БД?

  1. Теперь у меня есть клиенты, которые взаимодействуют с этими сотрудниками.

Их встречают боссы Затем они решают, какой сотрудник будет работать на них. Затем им присваиваются проекты с одним или несколькими разделами.

Как бы это было лучше всего сопоставлено.

  1. Отношения 1-н, м-н, 1-1: Могут ли они быть использованы, например, для:

Это Foreignkey из-за отношения 1-n. Это поле ManytoManyField из-за отношения m-n.

  1. И есть ли отличный онлайн-инструмент для лучшего понимания / визуализации этого.

Большое спасибо за ваше время!

1 Ответ

1 голос
/ 30 августа 2010

Возможно, вы захотите пройти курс по проектированию реляционных баз данных;этот предмет занимает больше нескольких дней, чтобы объяснить или освоить.Но вы на правильном пути.

Первое, что вы можете увидеть, - это иерархия, но, прежде чем вы это узнаете, будут не иерархические отношения, поэтому формируется сеть.Вот почему реляционные базы данных не работают с иерархиями.

Вы идентифицируете различные типы сущностей и имеете одну таблицу для каждого типа.

Для каждого типа сущности, которую вы определяетесвойства таких сущностей - каждое свойство будет столбцом таблицы.Если свойство не имеет атомарного значения, но имеет структурированное значение, эти структурированные значения должны рассматриваться как объект и должны иметь собственную таблицу, а свойство будет внешним ключом, ссылающимся на эту таблицу.

Таким образом, вы сформируете сеть таблиц, связанных внешними ключами.Это называется диаграммой сущности-отношения.Многие дизайнеры рекомендуют сначала создать такую ​​диаграмму без непосредственного сопоставления типов сущностей с таблицами.Они допускают отношения «многие ко многим» между типами сущностей на диаграмме.С другой стороны, внешний ключ между таблицами всегда имеет значение «многие к 1» или «1 к 1».Таким образом, у этих дизайнеров есть этап «внедрения», на котором они вводят дополнительную таблицу для каждого отношения «многие ко многим».Лично я не использую отношения «многие ко многим» в своих диаграммах для начала.

...