powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / как организовать вот такую структуру данных?
16 сообщений из 16, страница 1 из 1
как организовать вот такую структуру данных?
    #37921467
Фотография # Darth Vader #
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
задача такая, в базе должны храниться данных по оборудованию. У оборудования есть тип ( к примеру компьютер, монитор, сканер).

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

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

вариант 1 для каждого типа оборудования своя таблица с наборкой полей,НО система должна позволять юзеру создавать нужный ему тип оборудования со своей наборкой атрибутов...

дайте совет, пните в нужную сторону.
...
Рейтинг: 0 / 0
как организовать вот такую структуру данных?
    #37921469
`
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
`
Гость
...
Рейтинг: 0 / 0
как организовать вот такую структуру данных?
    #37921471
Фотография # Darth Vader #
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ой бл как замороченно... спасибо, а ничего попроще нет? кстати клиент на windows forms
...
Рейтинг: 0 / 0
как организовать вот такую структуру данных?
    #37921475
Фотография # Darth Vader #
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
хохо... почитал немного матчасть.. а сиквел то не всесилен )))))))))))
...
Рейтинг: 0 / 0
как организовать вот такую структуру данных?
    #37921493
Фотография # Darth Vader #
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
нашел такой вариант...

табличка с полями

PropertyName
PropertyType
PropertyValue

последнее с типом sql_variant

а в запросах преобразовывать к нужному типу...

чем плох этот вариант?
...
Рейтинг: 0 / 0
как организовать вот такую структуру данных?
    #37921502
Mnior
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
# Darth Vader #ой бл как замороченно ...Ничего топорнее чем EAV быть не может.

И в итоге у вас тоже самое что предложили в начале, только разве что без одной мелочи базовой нормализации.
Нужно хотябы 2 таблы, в итоге вся структура системы:+
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
CREATE TABLE [dbo].[ObjectType] (
	 ID		SmallInt	IDENTUTY
	 CONSTRAINT [PK_ObjectType]	PRIMARY KEY
	,Name		SysName		NOT NULL
	 CONSTARINT [UQ_ObjectType]	UNIQUE
)
CREATE TABLE [dbo].[Property] (
	 ID		SmallInt	IDENTUTY
	 CONSTRAINT [PK_Property]	PRIMARY KEY
	,Name		SysName		NOT NULL
	,CONSTARINT [UQ_Property]	UNIQUE
	,Type		Int		NOT NULL	-- Значения из sys.types.user_type_id
)
CREATE TABLE [dbo].[PropertyObjectType] (
	 ObjectType	SmallInt
	 CONSTRAINT [FK_PropertyObjectType_ObjectType]	REFERNCES [dbo].[ObjectType] ([ID])
	,Property	SmallInt
	 CONSTRAINT [FK_PropertyObjectType_Property]	REFERNCES [dbo].[Property] ([ID])
	,CONSTRAINT [PK_PropertyObjectType]		PRIMARY KEY (
		 ObjectType
		,Property
	)
)
CREATE TABLE [dbo].[Object] (
	 ID	Int		IDENTUTY
	 CONSTRAINT [PK_Object]		PRIMARY KEY
	,Type	SmallInt	NOT NULL
	 CONSTRAINT [FK_Object_Type]	REFERNCES [dbo].[ObjectType] ([ID])
	-- ... набор стандартных полей
)
CREATE TABLE [dbo].[ObjectProperty] (
	 [Object]	Int		IDENTUTY
	 CONSTRAINT [FK_ObjectProperty_Object]		REFERNCES [dbo].[Object] ([ID])
	,Property	SmallInt
	 CONSTRAINT [FK_ObjectProperty_Property]	REFERNCES [dbo].[Property] ([ID])
	,CONSTRAINT [PK_ObjectProperty]			PRIMARY KEY (
		 [Object]
		,Property
	)
	,Value		Sql_Variant	NOT NULL
)

PropertyObjectType - нужет только для того, чтобы занть какие у данного типа объекта могут быть поля.
Но это только начало, с виду маленькой задачки.
Поэтому выкиньте это всё, EAV - ошибка природы (решение для обездоленных). Ведь далее вам понадобится запросы к свойствам объектов и тогда всё, приплыли, невероятный геморрой и тормоза.

# Darth Vader # для каждого типа оборудования своя таблица с наборкой полей, НО система должна позволять юзеру создавать нужный ему тип оборудования со своей наборкой атрибутов... Одно другому не мешает! Это упёртое не понимание многих - что для чего уже изначально создано.

Если у вас нормальный сервер, то нужен всего лишь пару готовых заранее запросов и больше ничего, никаких дополнительных таблиц .
Использование наборов столбцов Но это не обязательно.

И конечно для этих "пару запросов" нужно знание сервера высокого уровня.
Если хотите, я могу написать их тут (вьюха и триггера к ней, для манипулирования свойствами по типам объектов).
Вы просто должны заранее решить как вам нужно представить данные для клиента. В какой форме? Обычно нормальному клиентской платформе это фиолетово.

Модератор: Тема перенесена из форума "Microsoft SQL Server".
...
Рейтинг: 0 / 0
как организовать вот такую структуру данных?
    #37921588
Фотография # Darth Vader #
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MniorЕсли хотите, я могу написать их тут (вьюха и триггера к ней, для манипулирования свойствами по типам объектов).


Дада, напишите плиз.Дружище, спасибо большое пребольшое. Жду.

структуру на клиенте я распаршу, а физика данных для клиента такая

Таблица типов оборудования

ID Типа Оборудования (PK)
Название типа оборудования

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

ID Актива
ID Типа Оборудования
Инв_номер
ШтрихКод
ID Локации
... ну и там еще несколько полей


Далее идут таблицы в которых можно зашивать дополнительные атрибуты для оборудования...

Вот тут Ваш ход, я так понял Вы такую задачку уже решали...
...
Рейтинг: 0 / 0
как организовать вот такую структуру данных?
    #37921765
SERG1257
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
# Darth Vader # НО система должна позволять юзеру создавать нужный ему тип оборудования со своей наборкой атрибутов.Я бы пободался с этим пунктом. Остальное легко решается без EAV -ищите по слову наследование
...
Рейтинг: 0 / 0
как организовать вот такую структуру данных?
    #37921998
Бредятина
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
# Darth Vader #задача такая, в базе должны храниться данных по оборудованию. У оборудования есть тип ( к примеру компьютер, монитор, сканер).
у компьютера одни атрибуты ( модель проца, количество памяти и куча других атрибутов) , у монитора разрешение экрана, время отклика и куча других атрибутов).
короче, атрибуты по типу и количеству у каждого вида оборудования разные, как реализовать оптимально хранение и обработку?
вариант 1 для каждого типа оборудования своя таблица с наборкой полей,НО система должна позволять юзеру создавать нужный ему тип оборудования со своей наборкой атрибутов...
дайте совет, пните в нужную сторону.
Эта задача здесь обсуждается примерно раз в две недели. Вот пример с характерным заголовком:)
http://www.sql.ru/forum/actualthread.aspx?tid=956140
Лучше всего использовать одну "таблицу". Однако это можно сделать только с использованием СУБД. Вы же используете, скорее всего, некие "реляционные системы", ограничения которых и приводят к такой необыкновенной живучести этой темы:)
...
Рейтинг: 0 / 0
как организовать вот такую структуру данных?
    #37922222
Фотография # Darth Vader #
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А спасибо!
...
Рейтинг: 0 / 0
как организовать вот такую структуру данных?
    #37922228
Фотография # Darth Vader #
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Бредятина# Darth Vader #задача такая, в базе должны храниться данных по оборудованию. У оборудования есть тип ( к примеру компьютер, монитор, сканер).
у компьютера одни атрибуты ( модель проца, количество памяти и куча других атрибутов) , у монитора разрешение экрана, время отклика и куча других атрибутов).
короче, атрибуты по типу и количеству у каждого вида оборудования разные, как реализовать оптимально хранение и обработку?
вариант 1 для каждого типа оборудования своя таблица с наборкой полей,НО система должна позволять юзеру создавать нужный ему тип оборудования со своей наборкой атрибутов...
дайте совет, пните в нужную сторону.
Эта задача здесь обсуждается примерно раз в две недели. Вот пример с характерным заголовком:)
http://www.sql.ru/forum/actualthread.aspx?tid=956140
Лучше всего использовать одну "таблицу". Однако это можно сделать только с использованием СУБД. Вы же используете, скорее всего, некие "реляционные системы", ограничения которых и приводят к такой необыкновенной живучести этой темы:)

я пробежал глазами тот топик и видел вашу аргументацию. Не поясните ли мне что Вы конкретно имеете ввиду под одной таблицей? Одна таблица для какой либо группы объектов или одна таблица в которой все смоделировано по трем полям object type value
...
Рейтинг: 0 / 0
как организовать вот такую структуру данных?
    #37922258
Old_Fat_Cat
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
# Darth Vader #,

Вроде как в этом сообщении содержится намёк
http://www.sql.ru/forum/actualutils.aspx?action=gotomsg&tid=963159&msg=13033858
...
Рейтинг: 0 / 0
как организовать вот такую структуру данных?
    #37922719
Бредятина
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
# Darth Vader #я пробежал глазами тот топик и видел вашу аргументацию. Не поясните ли мне что Вы конкретно имеете ввиду под одной таблицей? Одна таблица для какой либо группы объектов или одна таблица в которой все смоделировано по трем полям object type value
Видимо, чересчур быстро пробежали:) И не то, и не другое. Одна "таблица" Оборудование.
...
Рейтинг: 0 / 0
как организовать вот такую структуру данных?
    #37925365
Фотография # Darth Vader #
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Бредятина# Darth Vader #я пробежал глазами тот топик и видел вашу аргументацию. Не поясните ли мне что Вы конкретно имеете ввиду под одной таблицей? Одна таблица для какой либо группы объектов или одна таблица в которой все смоделировано по трем полям object type value
Видимо, чересчур быстро пробежали:) И не то, и не другое. Одна "таблица" Оборудование.

совсем что ли де нормализация?
...
Рейтинг: 0 / 0
как организовать вот такую структуру данных?
    #37925639
Бредятина
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
# Darth Vader #Бредятинапропущено...

Видимо, чересчур быстро пробежали:) И не то, и не другое. Одна "таблица" Оборудование.

совсем что ли де нормализация?
Никакой денормализации. См. пример... Читайте внимательнее...
...
Рейтинг: 0 / 0
как организовать вот такую структуру данных?
    #37937841
Mnior
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
# Darth Vader #Вот тут Ваш ход, я так понял Вы такую задачку уже решали...Чёрд, тему перенесли, и я её потерял её из виду. Вот ответ: 13091638
...
Рейтинг: 0 / 0
16 сообщений из 16, страница 1 из 1
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / как организовать вот такую структуру данных?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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