Таблицы базы данных для записей другой таблицы?

StackOverflow https://stackoverflow.com/questions/884497

  •  23-08-2019
  •  | 
  •  

Вопрос

Я разрабатываю новую версию своего Java-приложения (с использованием встроенной базы данных H2), в которой будет изменен способ обработки моих данных.Вот как я это запланировал:

  • Таблица записей-
    • Идентификатор записи
    • Имя записи
  • Таблица свойств-
    • Идентификатор объекта
    • Имя свойства
  • Таблица стоимости (индивидуального имущества)-
    • Идентификатор значения
    • Идентификатор записи
    • (Столбцы значений...)
  • (Индивидуальная запись) Таблица значений-
    • Имя свойства
    • Идентификатор значения (индивидуального имущества)

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

Это хороший способ сделать это?

Редактировать: Не уверен, что хорошо объяснил...

Это было полезно?

Решение

На мой взгляд, это очень плохой способ моделирования данных, но это очень примитивный взгляд на ситуацию, поскольку мне не приходилось использовать эту модель на практике.Кстати, это называется подход «Сущность-атрибут-значение».И причина, по которой мне это не нравится, заключается в том, что это очень не похоже на схему, поскольку большую часть функций SQL приходится каким-то образом реплицировать.

Для этого определенно есть время и место (например, если вы собираетесь моделировать множество объектов, имеющих разные модели) или схемы, которые часто меняются.Но лично я считаю, что это ужасно.

Другие советы

Если я вас правильно понимаю, я бы использовал пересечение или перекресток таблицы вместо того, что вы описали.

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

Я согласен с Неизвестным Google.Это еще называют Эффект внутренней платформы.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top