У меня есть проект по созданию базы данных в памяти для системы публикации, и мне нужна помощь в структуре базы данных, какова будет структура и поля таблиц и отношения между ними. Ниже приводится объяснение базы данных и таблиц. В этом проекте схема состоит из 3 таблиц: Пользователи, Контент, Лицензия, необходимо добавить достаточное количество столбцов для поддержки лицензий на основе временных ограничений (включая бессрочные) или количества доступов, которые предоставляют доступ к определенным фрагментам контента (фрагмент контента - это любой критерии, которые могут идентифицировать часть контента, такую как дата публикации в диапазоне или список идентификаторов контента и / или фильтр по имени журнала).
Пытался написать 3 таблицы.
таблица пользователей и состоит из:
-id
-name
-password
-authority
таблица лицензий:
-id
-name
таблица пользовательских лицензий "
-id
-user-id (FK)
-license-id (FK)
-price
-expiration date
-created at
Могут ли несколько пользователей иметь одну и ту же лицензию? Может ли пользователь иметь несколько лицензий?
пользователи не могут иметь одну и ту же лицензию, и пользователь может иметь несколько лицензий.






Насколько я понял, ваша проблема заключается в предоставлении разрешений на несколько видов использования. Это Java-приложение этого. Вот почему у вас есть тег java. Потому что в такой базе данных нет ничего плохого. если так
просто попробуйте использовать спящий режим
или создайте новый класс с методами специально для чтения или записи данных
Затем позвольте пользователю получить доступ к этим методам, как вы хотите, по наследству или любым подходом, который вам нравится.
моя проблема в том, как спроектировать таблицы и отношения между ними, я уже сделал с 3 таблицами и не знаю, как делать контент
моя проблема в том, как спроектировать таблицы и отношения между ними, я уже сделал с 3 таблицами и не знаю, как делать контент
Между пользователями и лицензиями существует отношение 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);
как насчет содержания, какое отношение и как я могу это сделать?
@AIMadi: что такое таблица content и что в ней содержится? Вы поместили какую-либо информацию об этой таблице в свой исходный пост.
контент - это публикация. Следует добавить достаточные столбцы для поддержки лицензий на основе временных ограничений (включая бессрочные) или количества доступов, которые дают доступ к определенным фрагментам контента (фрагмент контента - это любой критерий, который может идентифицировать часть контента, например дату публикации в пределах диапазона или списка идентификаторов контента и / или фильтра по имени журнала).
контент - это публикация. Необходимо добавить достаточное количество столбцов для поддержки количества обращений, которые предоставляют доступ к определенным фрагментам контента (фрагмент контента - это любой критерий, который может идентифицировать часть контента, например дату публикации в диапазоне или список идентификаторов контента. и / или фильтр по названию журнала).
Привет и добро пожаловать в Stack Overflow. Пожалуйста, прочтите stackoverflow.com/help/how-to-ask - в его нынешнем виде ваш вопрос не тот, на который мы можем ответить. Чего не хватает вашему первоначальному решению?