powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / Ищу совет по структуре БД
14 сообщений из 14, страница 1 из 1
Ищу совет по структуре БД
    #37908409
ALOTE
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Здравствуйте! У меня тут следующая проблема возникла, не знаю как подступиться. Есть таблица сущностей, есть таблица с атрибутами этих сущностей, нужно хранить значения атрибутов. И вот возникает проблема, атрибуты могут быть разных типов (число целое, число дробное, деньги, логика, строка, картинка ). И вот не знаю как хранить эти значения лучше. Понятно что логику, числовые значения, деньги можно хранить во Float, строку и ссылку на файл картинки (решил не хранить сам файл в БД) можно хранить в varchar. Вот и думаю о следующих вариантах хранения:
- Делать два поля (float, varchar) одно из которых будет всегда пустым. Что не очень благоприятно скажется на размере базы (таблица обещает со временем разрастись), да и решение, явно не красивое.
- Сделать две таблицы в одной хранить значения float, в другой varchar. Но делать ключ к двум таблицам, тоже кажется как то не красиво.
- В идеале, мне кажется, стоит сделать вообще четыре таблицы для значений одну для хранения money и float, вторую для varchar и ссылок на файлы, третью для int, четвертую для bit. Но как то уж очень громоздко выходит.
Кто как в таких ситуациях поступал?

Модератор: Тема перенесена из форума "Microsoft SQL Server".
...
Рейтинг: 0 / 0
Ищу совет по структуре БД
    #37908428
Фотография Дедушка
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
либо нормально описать атрибуты и разнести по таблицам в плоскую структуру по "классике" либо читать про EAV, BOM
...
Рейтинг: 0 / 0
Ищу совет по структуре БД
    #37908439
iap
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ALOTE,

теоретически каждая сущность должна соответствовать своей таблице.
В реляционных базах данных, по крайней мере.
Почитайте о нормальных формах, нормализации и т.п.

Что же касается типа FLOAT, то советую о нём просто забыть,
если Вы не храните значения физических величин (измерений физических приборов, например).

Базы данных бывают не только реляционные.
Так что в этом смысле требуется уточнение.
...
Рейтинг: 0 / 0
Ищу совет по структуре БД
    #37908456
ALOTE
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
iap, Именно значение физических величин хранится, база вполне реляционная, см. от куда была перенесена тема.
Дедушка, EAV в моем случае чрезмерно как то. А что такое BOM?
...
Рейтинг: 0 / 0
Ищу совет по структуре БД
    #37908524
ALOTE
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
iap мне кажется что хранение значений разных типов атрибутов в разных таблицах, как раз не соответствует 4 и 5 НФ.
...
Рейтинг: 0 / 0
Ищу совет по структуре БД
    #37908549
ALOTE
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Плюс еще вопрос, по самим атрибутам сущностей. Создавать на каждую сущность отдельный набор атрибутов, или же привязывать к к сущности атрибуты из готового набора (с возможность пользователя самостоятельно их создавать). Первый вариант более юзерфрендли, юзер создал сущность, насоздавал на нее атрибуты, вместо того, что бы выискивать атрибуты среди имеющихся, в случае отсутствия создавать их, а потом привязывать. Притом стопудоф насоздают дублирующие друг друга атрибуты.
Второй вариант соответствует 3 НФ. Но юзеру будет не комфортно.
...
Рейтинг: 0 / 0
Ищу совет по структуре БД
    #37908600
Фотография Дедушка
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ALOTE,
может вам, действительно, посмотреть на документарные БД (типа монги)?
...
Рейтинг: 0 / 0
Ищу совет по структуре БД
    #37908618
ALOTE
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Дедушка,
Да поздно, к сожалению, там уже несколько сотен таблиц и система рабочая. Да и с недоверием я к noSQL, пока, отношусь. Пока, все таки, склонился к EAV и юзерфрендли варианту. В конце концов НФ для разработчика, а не разработчик для НФ.
...
Рейтинг: 0 / 0
Ищу совет по структуре БД
    #37908675
Фотография Дедушка
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
в одном проекте делал похожую архитектуру (пользователь хотел сам без прога создавать сущности и произвольное количество атрибутов к ним).
были созданы отдельные таблицы на "типы" значений атрибутов (строки, целые...).
и была написана процедура построитель которая через динамику в момент сохранения атрибута(ов) строила процедуру для выборки данных по этой сущности
(прописывая какие нужно джоины к каким нужно таблицам значений на основе типов атрибутов).
в итоге когда пользователь хотел получить данные по сущности он использовал уже скомпилированную процедуру из кеша.
...
Рейтинг: 0 / 0
Ищу совет по структуре БД
    #37916858
Гхостик
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ALOTEПлюс еще вопрос, по самим атрибутам сущностей. Создавать на каждую сущность отдельный набор атрибутов, или же привязывать к к сущности атрибуты из готового набора (с возможность пользователя самостоятельно их создавать). Первый вариант более юзерфрендли, юзер создал сущность, насоздавал на нее атрибуты, вместо того, что бы выискивать атрибуты среди имеющихся, в случае отсутствия создавать их, а потом привязывать. Притом стопудоф насоздают дублирующие друг друга атрибуты.
Второй вариант соответствует 3 НФ. Но юзеру будет не комфортно.Интерфейс не должен зависеть от физической структуры хранения данных. Такая зависимость появляется только от неопытности разработчика интерфейса.
...
Рейтинг: 0 / 0
Ищу совет по структуре БД
    #37916912
Фотография vadiminfo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
iapБазы данных бывают не только реляционные.

Но поскоку Скуль, скорее всего, реляционная СУБД, то не реляционная БД под управлением такой СУБД, возможно, есть риски эффекта сочетания шапки ушанки (нереляционная БД) со смокингом (одна из лидирующих РСУБД).
...
Рейтинг: 0 / 0
Ищу совет по структуре БД
    #37917233
Flying Dutchman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ALOTE,

в SQL Server есть тип данных sql_variant.
...
Рейтинг: 0 / 0
Ищу совет по структуре БД
    #37922820
ALOTE
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Гхостик,
Вопрос не в интерфейсе а именно в реализации хранения данных. Хотя разрулил так что и волки целы и овцы накурены.
...
Рейтинг: 0 / 0
Ищу совет по структуре БД
    #37922839
ALOTE
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Flying DutchmanALOTE,

в SQL Server есть тип данных sql_variant.
Не доверяю я ему как то. Храню все в varchar
...
Рейтинг: 0 / 0
14 сообщений из 14, страница 1 из 1
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / Ищу совет по структуре БД
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]