Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / Подскажите идею по проектированию базы / 15 сообщений из 15, страница 1 из 1
29.06.2016, 12:57
    #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
29.06.2016, 13:07
    #39264619
Подскажите идею по проектированию базы
VIT2708_,

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

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

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

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

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

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

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

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

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

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

Кошмарное сопровождение системы)
...
Рейтинг: 0 / 0
12.07.2016, 17:11
    #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
12.07.2016, 17:19
    #39272577
LSV
LSV
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Подскажите идею по проектированию базы
авторat_attrib_value varchar(xxx)Неверно. Лучше по одному полю на каждый тип данных: целое, флоат, строка, дата, булеан.
В завис. от типа данных (должно быть такое поле в справочнике) зачитывать нужное поле. Написать sql-функции для этих зачиток.
Все равно мы знаем какого типа тот или иной параметр, поэтому вопрос, в каком поле наши данные - банальный. И никаких преобразований делать не нужно. Поля с данными можно проиндексировать.
...
Рейтинг: 0 / 0
12.07.2016, 17:28
    #39272584
alex_p_n
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Подскажите идею по проектированию базы
LSVавторat_attrib_value varchar(xxx)Неверно. Лучше по одному полю на каждый тип данных: целое, флоат, строка, дата, булеан.
В завис. от типа данных (должно быть такое поле в справочнике) зачитывать нужное поле. Написать sql-функции для этих зачиток.
Все равно мы знаем какого типа тот или иной параметр, поэтому вопрос, в каком поле наши данные - банальный. И никаких преобразований делать не нужно. Поля с данными можно проиндексировать.

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

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

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

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


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