Гость
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / Как учитывать любое количество атрибутов у сущности / 14 сообщений из 14, страница 1 из 1
05.11.2017, 19:46
    #39548057
Deft_Cat
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как учитывать любое количество атрибутов у сущности
Сейчас занимаюсь проектированием на уровне концепта и логики. БД автопарка. У Марки ТС по умолчанию 3 теххарактеристики, но нужно сделать так, чтобы можно было учитывать любое количество теххарактеристик. Я размышляю так: создать отдельную сущность Теххарактеристика и в ней ключевой атрибут -- её наименование. Но... что-то не пошло. Как добиться нужного результата? Помогите, пожалуйста, разобраться.

...
Рейтинг: 0 / 0
05.11.2017, 20:23
    #39548066
buser
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как учитывать любое количество атрибутов у сущности
Deft_Cat, EAV , но может для ваших потреб вполне сгодится какаянить из множества Document-oriented database ... если MS SQL принципиально, то реализуйте EAV или пользуйтесь типами XML/JSON
...
Рейтинг: 0 / 0
05.11.2017, 21:46
    #39548100
Deft_Cat
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как учитывать любое количество атрибутов у сущности
buser, спасибо за советы! Маленькое уточнение: как именно показать это графически в ERWin DM? Я хочу понять, как это организуется на логическом уровне.
...
Рейтинг: 0 / 0
05.11.2017, 22:27
    #39548121
Andy_OLAP
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как учитывать любое количество атрибутов у сущности
Deft_Catbuser, спасибо за советы! Маленькое уточнение: как именно показать это графически в ERWin DM? Я хочу понять, как это организуется на логическом уровне.
Заводите таблицу "Технические характеристики марки ТС", в ней два столбца в виде ссылок на 2 других справочника - Марка ТС и Технические характеристики.
Ссылки из таблицы в справочники - аналогично как в сотрудниках наименование должности - ссылка на справочник должностей. Только тут не одна ссылка, а две. Все.

Модератор: Тема перенесена из форума "Microsoft SQL Server".
...
Рейтинг: 0 / 0
06.11.2017, 14:34
    #39548378
Deft_Cat
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как учитывать любое количество атрибутов у сущности
Andy_OLAP,

В итоге получается, что табличка "Технические характеристики марки ТС" в Excel (для последующего импорта в SQL Server) будет выглядеть следующим образом (в дальнейшем, при необходимости, можно будет добавлять характеристики, дописывая марку+характеристику+значение). Я правильно понял Ваш совет? (красным -- первичный ключ)

И чтобы выдать, к примеру, все имеющиеся характеристики BMW E5 (названия значения накидал рандомные, чисто для примера) нужно будет с помощью операции Соединение это совершить?

...
Рейтинг: 0 / 0
06.11.2017, 15:13
    #39548391
Andy_OLAP
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как учитывать любое количество атрибутов у сущности
Deft_CatAndy_OLAP,

В итоге получается, что табличка "Технические характеристики марки ТС" в Excel (для последующего импорта в SQL Server) будет выглядеть следующим образом
Да, но не совсем. В таблице отчета будут Name из справочника, в таблице технических характеристик 2 столбца ID. Иначе после переименования характеристики ID=234, Name="Кросный" на "Красный" Вам придется апдейтить таблицу и во всех столцах текстовые "Кросный" менять на "Красный". А если будет только ID - так он так 234 и останется.
На всякий случай уточнил этот нюанс, мало ли.
...
Рейтинг: 0 / 0
06.11.2017, 15:44
    #39548411
Deft_Cat
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как учитывать любое количество атрибутов у сущности
Andy_OLAP, а где же хранить значения характеристик, если в таблице "Технические характеристики марки ТС" будут только 2 ID? Я не понимаю вот этого момента, к сожалению...
...
Рейтинг: 0 / 0
06.11.2017, 15:54
    #39548415
Andy_OLAP
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как учитывать любое количество атрибутов у сущности
Deft_CatAndy_OLAP, а где же хранить значения характеристик, если в таблице "Технические характеристики марки ТС" будут только 2 ID? Я не понимаю вот этого момента, к сожалению...
В справочнике, который Вы уже создали - Технические характеристики. ID=1 объем двигателя, ID=2 основной цвет, ID=3 полный привод, ID=4 передний привод, и так далее.
Только технические характеристики относятся к автомобилю, а не к марке. Вот есть марка феррари. Машины в основном красные. Но какое это имеет отношение к конкретному автомобилю? Или марка 1.6 литра, а на автомобиль поставили двигатель 1.8, ну и что даст отчет, что техническая характеристика марки ТС для данного автомобиля возвращает 1.6? Сравнить дефолтный вариант с конкретным для автомобиля?
Я бы завел более общий справочник "Технические характеристики автомобиля", туда и цвет, и объем двигателя и так далее. И "технические характеристики марки ТС" - это ссылка на ID марки и ссылка на ID общих характеристик, которые бывают вообще у автомобилей.
...
Рейтинг: 0 / 0
06.11.2017, 20:21
    #39548552
Бредятина
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как учитывать любое количество атрибутов у сущности
Deft_Cat, так Вы не разберетесь:) Сначала Вам нужно поместить все характеристики транспортного средства в "таблицу" Транспортное средство. Сколько нужно характеристик, столько и помещайте. Разве Вам кто-то запретил?
...
Рейтинг: 0 / 0
06.11.2017, 21:25
    #39548571
Deft_Cat
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как учитывать любое количество атрибутов у сущности
Бредятина,

к примеру, помещу я в таблицу Транспортное_средство 3 характеристики, или 5, или 7, -- и они будут неключевыми атрибутами для данной таблицы. Но условие такое, что нужно сделать так, чтобы учитывалось любое количество характеристик. Следовательно, характеристики должны как-то добавляться, когда этого потребуется. Если я что-то не понимаю, а вы точно видите разрешение, то уточните, пожалуйста :)
...
Рейтинг: 0 / 0
07.11.2017, 10:41
    #39548775
LSV
LSV
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как учитывать любое количество атрибутов у сущности
По сабжу приводилось реальное решение уже неск. раз.
Нужно всего две таблицы:
1. справочник атрибутов
2. таблица привязки значения атрибута к сущности, т.е. набор ключей и значения.
(профит)
...
Рейтинг: 0 / 0
07.11.2017, 15:57
    #39549066
Andy_OLAP
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как учитывать любое количество атрибутов у сущности
LSV,

Так тут ситуация хуже. "У Марки ТС по умолчанию 3 теххарактеристики, но нужно сделать так" - база автопарка. На маршруты выставляются или газели, или большие автобусы. Автор темы думает, что создаст запись "Газель" как марка ТС, в ней пропишет вместимость условно 15 человек, запись "Пазик" как марка ТС, в ней пропишет вместимость условно 25 человек, и далее в программе будут выбирать из справочника атрибутов такой как "вместимость", забьют 17 человек (в среднем на новый маршрут) и увидят, что можно на него пустить газельки, а не пазики.
А вот и нет. Подобные характеристики являются привязкой к конкретному автомобилю.

Автор темы - далее для Вас абстрактное размышление.
У меня допустим марка "феррари" - основной цвет красный, основная вместимость 2+2. Ну и - мои слесари переделали в пикап, стало 2 человек максимум, плюс перекрасили в желтый. Ну и что мне из записи по теххарактеристике марки ТС?
Или кол-во дней между техосмотром. Ну, стоит у некой абстрактной газели условные 10 дней. Но бывает газели условно выпуска 2015 года, для которых кол-во дней 10, а бывает условно 2017, для которых кол-во дней 7 (чаще нужно проверять, на заводе испортили качество продукции). И дальше что - заводить в марку ТС раздельно "газели выпуска 2015" и "газели выпуска 2017"?
Подумайте, зачем Вам прикручивать теххарактеристики именно к марке ТС. Не будет ли это граблями, которые потом больно ударят...
...
Рейтинг: 0 / 0
07.11.2017, 16:57
    #39549102
LSV
LSV
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как учитывать любое количество атрибутов у сущности
Так тут ситуация хуже. Можно прописать не к карточке ТС, а к группе ТС (типо: пассажирские до 12мест, пассажирские до 25мест, грузовые и т.д.).
Как вариант, можно сделать и там и там, чтобы при создании новой карточки ТС, в неё копировались готовые атрибуты из группы.
Затем при необх. конкретную карточку можно отредактировать.
...
Рейтинг: 0 / 0
07.11.2017, 19:47
    #39549226
Бредятина
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как учитывать любое количество атрибутов у сущности
Deft_CatБредятина,

к примеру, помещу я в таблицу Транспортное_средство 3 характеристики, или 5, или 7, -- и они будут неключевыми атрибутами для данной таблицы. Но условие такое, что нужно сделать так, чтобы учитывалось любое количество характеристик. Следовательно, характеристики должны как-то добавляться, когда этого потребуется. Если я что-то не понимаю, а вы точно видите разрешение, то уточните, пожалуйста :)
Точно вижу:) А Вы его увидите, когда разберетесь... Почему Вы не можете добавлять сколько угодно характеристик в таблицу "Транспортное средство", когда Вам это потребуется?
...
Рейтинг: 0 / 0
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / Как учитывать любое количество атрибутов у сущности / 14 сообщений из 14, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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