Я разрабатываю собственное приложение для выпускников и сталкиваюсь с проблемой на уровне базы данных. Если можно, я хотел бы попросить совета / предложения.

В моей системе каждая запись в системе должна содержать немного базовой информации, например:
- создатель
- текущий владелец
- время создания
- запись статуса (перемещено в корзину или нет)
и т. д.

Например, мне нужны те же базовые данные, что и выше, для:
* Пользователи
* Файлы (которые будут использоваться пользователями)
* Уведомления (для пользователя)
* Сотрудники (потому что не каждый сотрудник является пользователем, но каждый сотрудник хранит данные, такие как время создания)
и т. д.

Поэтому я подумал, что хорошей идеей будет хранить все эти данные в одной таблице и ссылаться на нее на другие таблицы модулей.

И в этом суть моей проблемы. Как я могу спроектировать и реализовать эту конкатенацию. Я пробовал искать таблицы в схеме (я использую MariaDB) и перечислять их в одной таблице, но это меня не убедило.

Возможно, вы слышали или читали о некоторых решениях такой проблемы.

Большое спасибо!!

-1
mrzewnicki 19 Ноя 2019 в 17:40

1 ответ

Users и Files один ко многим, верно? Тогда вы «должны» использовать две разные таблицы. (Так далее.)

Тот факт, что created / owner / time / status есть в каждой таблице, не является нарушением принципов проектирования базы данных.

Мысль состоит в том, чтобы поместить их для столбцов в другую таблицу. Но они по сути независимы друг от друга, так что это не имеет смысла.

Вернемся к общему понятию таблиц. Подумайте, какие «сущности» у вас есть (пользователи, файлы, уведомления, сотрудники). Затем подумайте, как они связаны таким образом:

  • 1: 1 - Поместите информацию в единую таблицу
  • 1: many - две таблицы; таблица "многие" содержит id значения "один".
  • много: много - 3 стола; дополнительный - это отображение между двумя другими; у него есть id для каждой другой таблицы и обычно нет других столбцов.

После этого вы можете приступить к заполнению таблиц - id, name, created_time, status и т. Д.

1
Rick James 19 Ноя 2019 в 18:21