структура таблиц для системы публикации - PullRequest
0 голосов
/ 06 января 2019

У меня есть проект по созданию базы данных в памяти для системы публикации, и мне нужна помощь в структуре базы данных, какой будет структура и поля таблиц, а также отношения между ними. Ниже приведено объяснение базы данных и таблиц. В этом проекте схема состоит из 3 таблиц: «Пользователи», «Контент», «Лицензия», необходимо добавить достаточное количество столбцов для поддержки лицензий на основе временных ограничений (включая бессрочный) или количества обращений, которые предоставляют доступ к определенным фрагментам содержимого (любой фрагмент содержимого критерии, которые могут идентифицировать часть содержимого, например дату публикации в диапазоне или список идентификаторов содержимого и / или фильтр по названию журнала).

Я пытался написать 3 таблицы.

таблица пользователей и состоит из:

-id
-name
-password
-authority

таблица лицензий:

-id
-name

таблица пользовательских лицензий "

-id
-user-id (FK)
-license-id (FK)
-price
-expiration date 
-created at

Ответы [ 3 ]

0 голосов
/ 06 января 2019

Моя проблема в том, как спроектировать таблицы и отношения между ними, я уже сделал с 3 таблицами и не знаю, как сделать содержимое

0 голосов
/ 06 января 2019

У вас есть отношение 1-N между пользователями и лицензиями, когда один пользователь может иметь несколько лицензий, и каждая лицензия принадлежит только одному пользователю.

Чтобы представить такое отношение, достаточно трех таблиц вместо трех. Вам не нужен дополнительный стол для бриджа user-license:

  • таблица user содержит одну запись для каждого уровня пользователя (идентификатор, имя, пароль, ...)

  • таблица licence содержит одну запись на лицензию со всей соответствующей информацией (имя, цена, срок действия, ...) и внешний ключ, который ссылается на идентификатор пользователя, которому лицензии принадлежат

Вот как добавить внешний ключ в таблицу license:

ALTER TABLE license 
    ADD user_id INT NOT NULL DEFAULT 0;
ALTER TABLE license
    ADD CONSTRAINT fk_user_id 
    FOREIGN KEY (user_id) REFERENCES users(id);
0 голосов
/ 06 января 2019

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

просто попробуйте использовать спящий режим

или создайте новый класс с методами, специально предназначенными для чтения или записи данных

Затем предоставьте пользователю доступ к этим методам по своему усмотрению с помощью наследования или любого другого подхода, который вам нравится

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