Форум программистов, компьютерный форум CyberForum.ru

Java и базы данных

Войти
Регистрация
Восстановить пароль
 
stalker033
0 / 0 / 0
Регистрация: 02.03.2014
Сообщений: 11
#1

Нетривиальное проектирование БД - Java БД

05.11.2016, 20:18. Просмотров 407. Ответов 2

Всем привет! Для курсовой сформулирована следующая задача, необходимо написать клиент-серверный менеджер документов, для хранения видов (Персональные, медицинские, финансовые и т.д.) и классов документов (паспорт, загранпаспорт, СНИЛС и т.д.), при этом должен быть реализован механизм документального наследования (например на базе паспорта создать экземпляр загранпаспорта, используя определенные реквизиты из оного). Документы можно создавать произвольного вида и с произвольным количеством полей-реквизитов. Данные должны быть иерархически связаны.
Использую СУБД MySQL, начал проектировать, были созданы 3 таблицы.

Кликните здесь для просмотра всего текста

Нетривиальное проектирование БД
Нетривиальное проектирование БД


Возникла идея реализации базы следующим образом, в таблице docs в поле doc будут храниться группы и классы документов, parentId - id родительской группы/класса. По полю isClass определяем является ли данная запись классом документа, если является, то создаем таблицу с одноименным названием, записи которой - экземпляры класса документа.

Помимо иерархии структуры документов, также должно существовать наследование экземпляров (набор документов, принадлежащих определенному физ. лицу, например, на базе паспорта создать экземпляр загранпаспорта, дополняя его лишь необходимыми реквизитами), которое думаю реализовать, используя в качестве связи поля таблиц классов документов parentType и parentId, которые в совокупности дадут нам однозначно определить экземпляр и класс родительского документа. Начав реализовывать подобную модель я сразу же столкнулся со сложностью самой модели и мыслью о том, что я вообще неправильно начал ее проектировать, надеюсь, что более опытные товарищи подскажут возможно ли упростить данную модель, либо подскажут инструменты, упрощающие реализацию подобного функционаа. К тому же, как генерировать сходу таблицы с заранее неизвестным количеством реквизитов, а потом их обрабатывать я пока не очень себе представляю.
Рассматривал различные алгоритмы хранения иерархичных данных в реляционных БД, на основе полученной информации попытался склепать нечто подходящее под мою задачу. Возможно ваши рекомендации помогут по новому взглянуть на поставленную задачу, спасибо!
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
05.11.2016, 20:18     Нетривиальное проектирование БД
Посмотрите здесь:

Проектирование БД - Java БД
Здравствуйте форумчане! Не могу разобраться с проектированием БД. Есть такие сущности как Folder, File, User, причем, каждая...

Проектирование БД - Java БД
Здравствуйте! Допустим есть склад учета товаров. Разные товары со своими характеристиками. Ясно что каждый товар должен иметь...

Проектирование БД - Java БД
Здравствуйте! Цель создать БД - склад (для отслеживания товара) на котором будут находиться до 5 групп товаров одной отрасли ...

Нетривиальное отображение графика функции - Maple
Добрый день, уважаемые форумчане! Нужна ваша помощь - есть функция вида: Y(x) = Yo + (Ey-Yo)*(x/Ex)^p) * (1+(x/Ex)^p) Yo и p -...

Как установить, при каком значении имеется нетривиальное решение системы, а также найти одно из них? - Геометрия
Например вот для этой системы: 12x + 15y + 11z = 83 11x - 14y + 13z = 70 13x + 11y - 12z = 90 Нетривиально решение - это...

Проектирование БД - Базы данных
Никак не нарисую себе правильную модель. Вот у меня есть талцица с данными о товаре (у каждого товара есть свой id - первичный ключ). И,...

Проектирование БД - Базы данных
Предыстория: Когда то я написал для себя программу "органайзер" на Qt. Она хранила две таблицы данных: с глобальными целями и...

Проектирование БД - Базы данных
Ребята,хочу бд спроектировать для риэлторской фирмы,знаний по бд нету и навыки программирования очень малы. Количество записей тыс 15...

Проектирование БД. - SQL Server
Ставится задача спроектировать базу данных для секретаря кегельной лиги небольшого городка, расположенного на Среднем Западе США. В ней...

Проектирование БД - MS Access
Нужно ли в ER-диаграмме включать(рисовать) атрибуты для сущностей ?

Проектирование - Программирование
Подскажите литературу или другие ресурсы, на которых можно почитать про проектирование самого приложения (именно уже файликов с кодом)?...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Fene4ka_
89 / 89 / 16
Регистрация: 24.01.2014
Сообщений: 1,215
07.11.2016, 22:32     Нетривиальное проектирование БД #2
эмм, вам нужно множить не таблицы, а записи в таблицах, так что создавать динамически зачем-то таблицы сразу от этого откажитесь. В вашем случае самым простым, наверное, будет Docs - Type - Requisites и еще какая-то таблица, собственно где будут записываться данные ваших документов(id, docsId, fieldName, Value). Собственно в Docs лежит описание какого-то документа. В Type просто перечислены ваши типы документов и также иерархия наследования (Id, ParentId, TypeName). Ну а в Requisites содержится список полей для определенного типа (Id, TypeId, FieldName, Description). Ну а дальше тянуть инфу из базы по мере надобности.
KEKCoGEN
Эксперт Java
1897 / 1775 / 432
Регистрация: 28.12.2010
Сообщений: 7,166
07.11.2016, 23:37     Нетривиальное проектирование БД #3
Цитата Сообщение от stalker033 Посмотреть сообщение
Использую СУБД MySQL
для вашей задачи имхо лучше бы подошла NoSQL БД.
Yandex
Объявления
07.11.2016, 23:37     Нетривиальное проектирование БД
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru