powered by simpleCommunicator - 2.0.59     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / Подскажите идею по проектированию базы
15 сообщений из 15, страница 1 из 1
Подскажите идею по проектированию базы
    #39264616
VIT2708_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Есть категории(внутри них могут быть разный набор колонок)

Покажу на примере

Cat1: col1-int, col2-varchar, col3-varchar,....
Cat2: col1-int, col2-varchar, col3-varchar, col4-varchar....
Cat2: col1-int, col2-varchar, col3-varchar, col4-datetime(я программно на стороне клиента конвертну ее в строку)....
......
Таких категорий может быть 100 и больше, что бы под каждую из них не создавать базу может можна как то сделать так

dbo.CatN
catId int,
catFileldTitle varchar,
catFieldVal тип данных


На клиенте я бы считывал их и формировал данные как ключ:значение и выводил на веб страницу

Кто сталкивался с таким, подскажите как оптимально решить?

Спасибо
...
Рейтинг: 0 / 0
Подскажите идею по проектированию базы
    #39264619
VIT2708_,

Значения в колонках меняются? Зависят от даты/времени?
...
Рейтинг: 0 / 0
Подскажите идею по проектированию базы
    #39264707
VIT2708_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
меня зовут EAV,

это я пока пытаюсь придумать как сделать и не знаю как лучше
...
Рейтинг: 0 / 0
Подскажите идею по проектированию базы
    #39264732
VIT2708_,

Так уже ж все сделалVIT2708_dbo.CatN
catId int,
catFileldTitle varchar,
catFieldVal тип данных
Я бы еще для catFileldTitle справочник сделал, заменив его, соответственно, на catFileldID int.
И поле с датой добавил бы, если значения catFieldVal датазависимые.
...
Рейтинг: 0 / 0
Подскажите идею по проектированию базы
    #39266213
VIT2708_,

Судя по всему у тебя трёх-уровневая архитектура. Конвертировать такую таблицу на клиенте вообще не оптимально. Думаю, что тут правильнее это сделать на сервере базы данных)
...
Рейтинг: 0 / 0
Подскажите идею по проектированию базы
    #39266235
VIT2708_col4-datetime(я программно на стороне клиента конвертну ее в строку)....

А как у тебя будут забиваться данные? Если со стороны пользователя, то тебе в любом случае нужно хранить информацию о типе атрибута (как минимум, для валидации).

Это простое EAV, и её реализация для тебя примерно следующая:

Таблица категорий, Таблица типов данных, Таблица атрибутов (которая связана с таблицей категорий и таблицей типов данных), и сама Таблица с данными (которая связана с таблицей атрибутов).

Если у тебя категории ещё и взаимосвязаны между собой, то в Таблице типов данных можно ещё добавить тип entity, который будет определять, что это есть внешний ключ на какую-либо сущность.
...
Рейтинг: 0 / 0
Подскажите идею по проектированию базы
    #39266829
VIT2708_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Марков Илья,

Я еще не знаю окончательный вариант, пока что пробую и тестирую как лучше
...
Рейтинг: 0 / 0
Подскажите идею по проектированию базы
    #39266839
Злой Бобр
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Для автора более критично будет быстро обрабатывать и выводить результат. Поэтому строить универсальную БД нет смысла, там полюбому страдает скорость. Я б не заморачивался и создавал на известные данные. При добавлении новых просто добавлял бы в схему БД.
Иногда самое простое решение является самым правильным.
...
Рейтинг: 0 / 0
Подскажите идею по проектированию базы
    #39267147
Злой Бобр,

VIT2708_Таких категорий может быть 100 и больше

Кошмарное сопровождение системы)
...
Рейтинг: 0 / 0
Подскажите идею по проектированию базы
    #39272572
Фотография alex_p_n
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
VIT2708_,

Имеются ли общие колонки у всех категорий? Хотя бы cat_id и cat_name?

Если да - то тогда ИМХО так:

Таблица Categories
cat_id int
cat_name varchar(xxx)

Таблица CatAttribs
cat_id int,
cat_attrib_name varchar(xxx),
cat_attrib_value varchar(xxx)

Связь по cat_id.

Тогда для любой категории можно задать произвольное кол-во произвольных атрибутов.
Преобразовать потогм varchar в любой тип - не пробема.
...
Рейтинг: 0 / 0
Подскажите идею по проектированию базы
    #39272577
LSV
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
авторat_attrib_value varchar(xxx)Неверно. Лучше по одному полю на каждый тип данных: целое, флоат, строка, дата, булеан.
В завис. от типа данных (должно быть такое поле в справочнике) зачитывать нужное поле. Написать sql-функции для этих зачиток.
Все равно мы знаем какого типа тот или иной параметр, поэтому вопрос, в каком поле наши данные - банальный. И никаких преобразований делать не нужно. Поля с данными можно проиндексировать.
...
Рейтинг: 0 / 0
Подскажите идею по проектированию базы
    #39272584
Фотография alex_p_n
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
LSVавторat_attrib_value varchar(xxx)Неверно. Лучше по одному полю на каждый тип данных: целое, флоат, строка, дата, булеан.
В завис. от типа данных (должно быть такое поле в справочнике) зачитывать нужное поле. Написать sql-функции для этих зачиток.
Все равно мы знаем какого типа тот или иной параметр, поэтому вопрос, в каком поле наши данные - банальный. И никаких преобразований делать не нужно. Поля с данными можно проиндексировать.

Ну, или так :) Я когда-то делал так, как написал - мне хватило :)
...
Рейтинг: 0 / 0
Подскажите идею по проектированию базы
    #39273612
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
VIT2708_,

Просто ночной кошмар разработчика бд....
беги быстрее перепроектировать свою бд, желательно с нуля...
...
Рейтинг: 0 / 0
Подскажите идею по проектированию базы
    #39277185
CawaSPb
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
VIT2708_,

Это называется "слабоструктурированные данные".
Впихивать невпихуемое в реляционную структуру можно, но как правило себе дороже.

Рассмотрите возможность БД хранить (и обрабатывать) XML, JSON, ... whatever.
...
Рейтинг: 0 / 0
Подскажите идею по проектированию базы
    #39281600
Александр Пузаков
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
VIT2708_, подсмотрите у 1с, у них прекрасный механизм придуман: план видов характеристик , механизм характеристик . А вот в этой книге описана вся структура таблиц и индексов механизма характеристик 1с.
...
Рейтинг: 0 / 0
15 сообщений из 15, страница 1 из 1
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / Подскажите идею по проектированию базы
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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