Взаимосвязь таблиц SQL - PullRequest
0 голосов
/ 18 июня 2019

Я создал 4 таблицы, которые мне нужно связать друг с другом, а затем создал форму для добавления / отображения данных.

Я создал 4 таблицы в SQL, но не уверен, что у меня естьвведите правильные отношения или поля, чтобы к данным можно было обращаться правильно

User Table
  User_ID (Pkey)
  Full_Name (varchar)
  User_Name (varchar)

Department Table
  Dept_ID (Pkey)
  Department_Name (varchar)
  User_ID (int) 

Application Table
  App_ID (Pkey)
  Application_Name (varchar)
  User_ID (int)

Access_Date Table
  Date_ID (Pkey)
  Access_Date (date)
  Removal_Date (date)
  User_ID (int)

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

Пользователь может иметь несколько приложений и может находиться в нескольких отделах.

Мне кажется, у меня неправильное поле ID (int), связанное с таблицей Access_Date или Application,но не уверен.

Теперь я добавил соединительные таблицы для UserDepartment, UserApplications, UserAccessDates, когда я открываю форму в MS Access 2016, я получаю пустую страницу.Форма была создана с использованием таблицы «Пользователь» в качестве основной, а также отдела и приложения, а также даты доступа в виде подформ.

Ответы [ 2 ]

2 голосов
/ 18 июня 2019

Нет, у вас нет нужных таблиц. Позвольте привести пример с пользователями и отделами. Вы хотите три таблицы для них:

Users Table
  User_ID (Pkey)
  Full_Name (varchar)
  User_Name (varchar)

Departments Table
  Department_ID (Pkey)
  Department_Name (varchar)

UserDepartments
  User_ID (int) 
  Department_ID (int)
  Other information, such as Effective_Date and End_Date

Первые две таблицы представляют две разные сущности, Users и Departments. Третья - это таблица ассоциации / соединения, которая реализует отношение «многие ко многим».

Точно так же вы хотите таблицу UserApplications. И ваша таблица доступа должна показать приложение.

Примечания по именованию:

  • Я обычно называю таблицы во множественном числе, потому что они содержат несколько экземпляров сущности.
  • Первичным ключом является единственное число в имени таблицы, за которым следует _id или Id.
  • Первичные и внешние ключи, по возможности, имеют одно и то же имя.
0 голосов
/ 18 июня 2019

Из того, что вы предоставили, вы сможете определить, что у пользователя есть доступ к приложению, но не к какому приложению он имеет доступ.Чтобы предоставить эту информацию, вам нужно добавить App_Id в таблицу Access_Date.Отделы не связаны ни с чем, кроме пользователя.Если отделы имеют какое-либо отношение к приложениям или специфическим для Access_Date, вам нужно будет связать отдел с таблицами Application и / или Access_date.

Я добавил рисунок, показывающий взаимосвязи между таблицами до того уровня, который я понимаю(используя ms доступ). Отношения

Вот новая картинка. Новые отношения

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