Member 14660986 Ответов: 2

Храните основную информацию о каждом модуле в базе данных


Привет,

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

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

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

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

И в этом суть моей проблемы. Как я могу спроектировать и реализовать эту конкатенацию?

Что я уже пробовал:

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

Может быть, вы слышали или читали о каких-то решениях для этой проблемы.

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

2 Ответов

Рейтинг:
1

OriginalGriff

Почему ты держишь его в одном столе? Являются ли они все связанной информацией?

Подумайте об этом: будете ли вы хранить рецепты в той же папке, что и налоговые квитанции? Может быть, телевизионные графики тоже должны быть там?
Конечно, нет: вы создадите папку для рецептов, другую-для квитанций, а третью-для телевизионного расписания, потому что так их будет легче найти, когда вы захотите.

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

Users:         ID, Name, Address, MobileNumber, ...
Files:         ID, Title, Version, DateInserted, ...
UserFileLinks: ID, UserID, FileID, ...
Таким образом, вы сохраняете связанную информацию вместе и можете очень легко получить к ней доступ.

То же самое с уведомлениями, сотрудниками и так далее.

Подумайте о своих данных, о том, что вы собираетесь с ними делать, и о том, как они отражают "реальный мир" - тогда приступайте к проектированию баз данных!


Рейтинг:
1

RickZeeland

В дополнение к ответу OriginalGriff, вы можете быть заинтересованы в использовании инструмента моделирования, см. обзор здесь: инструменты проектирования и моделирования реляционных баз данных[^]

А также узнать о реляционных базах данных: какие-лучшие-ресурсы-для-изучения-базы данных-основы[^]