powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / Сводная таблица вторичных данных
9 сообщений из 9, страница 1 из 1
Сводная таблица вторичных данных
    #34563875
Fagrant
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Есть необходимость хранить некие данные, являющиеся подчиненными другим. В общем случае все просто, ключ первичной таблицы во вторичную и поехало. А у меня такой случай - первичными таблицами может являться несколько таблиц. Т.е. в подчиненную таблицу могут добавляться записи, ссылающиеся на разные объекты БД.

Согласен, на первый взгляд, кажется что ошибка проектирования БД, если первичный объект разнесен по разным таблицам. Но это не так, разнесен он правильно, это вторичные данные унифицированы :) Как пример могу привести лог изменений объектов в БД, хотя сейчас речь не о нем.

Вопрос. Как бы правильней построить структуру подчиненной таблички? Чтобы и выбирать удобно, и лишних телодвижений не делать? Очень не хочется делать в ней несколько FK на главные таблицы. Подскажите плиз.
...
Рейтинг: 0 / 0
Сводная таблица вторичных данных
    #34563889
lepton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Структуру в студию!
...
Рейтинг: 0 / 0
Сводная таблица вторичных данных
    #34564124
Fagrant
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Здесь реализация в лоб. Неправильная, наверно :) Но представление дает.
Следует ожидать увеличение количества объектов, выглядеть будет глупо. Поэтому и суечусь.

Код: plaintext
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.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
70.
71.
72.
73.
74.
75.
76.
77.
78.
79.
80.
81.
82.
83.
84.
85.
86.
87.
88.
89.
90.
CREATE TABLE [dbo].[Obj1] (
	[ID_1] [int] IDENTITY ( 1 ,  1 ) NOT NULL ,
	[NameObj1] [char] ( 6 ) COLLATE Cyrillic_General_CI_AS NOT NULL ,
	[TypeObj1] [int] NOT NULL ,
	[BPeriod] [datetime] NOT NULL ,
	[EPeriod] [datetime] NOT NULL 
) ON [PRIMARY]
GO

CREATE TABLE [dbo].[Obj2] (
	[ID_Obj2] [int] IDENTITY ( 1 ,  1 ) NOT NULL ,
	[NameObj2] [varchar] ( 50 ) COLLATE Cyrillic_General_CI_AS NOT NULL ,
	[FullNameObj2] [varchar] ( 50 ) COLLATE Cyrillic_General_CI_AS NOT NULL ,
	[FK1] [int] NOT NULL ,
	[FK2] [int] NOT NULL ,
	[FK3] [int] NOT NULL ,
	[FK4] [int] NOT NULL 
) ON [PRIMARY]
GO

CREATE TABLE [dbo].[Obj3] (
	[ID_Obj3] [int] IDENTITY ( 1 ,  1 ) NOT NULL ,
	[Nme1] [varchar] ( 50 ) COLLATE Cyrillic_General_CI_AS NOT NULL ,
	[Nme2] [varchar] ( 50 ) COLLATE Cyrillic_General_CI_AS NOT NULL ,
	[Nme3] [varchar] ( 50 ) COLLATE Cyrillic_General_CI_AS NOT NULL ,
	[Nme4] [varchar] ( 50 ) COLLATE Cyrillic_General_CI_AS NOT NULL ,
	[Nme5] [varchar] ( 50 ) COLLATE Cyrillic_General_CI_AS NOT NULL ,
	[FK6] [int] NOT NULL 
) ON [PRIMARY]
GO

CREATE TABLE [dbo].[SecondaryObjects] (
	[ID_sys] [int] IDENTITY ( 1 ,  1 ) NOT NULL ,
	[ID_Obj1] [int] NULL ,
	[ID_Obj2] [int] NULL ,
	[ID_Obj3] [int] NULL ,
	[SCost] [money] NOT NULL ,
	[SDescr] [varchar] ( 50 ) COLLATE Cyrillic_General_CI_AS NOT NULL 
) ON [PRIMARY]
GO

ALTER TABLE [dbo].[Obj1] WITH NOCHECK ADD 
	CONSTRAINT [PK_Obj1] PRIMARY KEY  CLUSTERED 
	(
		[ID_1]
	)  ON [PRIMARY] 
GO

ALTER TABLE [dbo].[Obj2] WITH NOCHECK ADD 
	CONSTRAINT [PK_Obj2] PRIMARY KEY  CLUSTERED 
	(
		[ID_Obj2]
	)  ON [PRIMARY] 
GO

ALTER TABLE [dbo].[Obj3] WITH NOCHECK ADD 
	CONSTRAINT [PK_Obj3] PRIMARY KEY  CLUSTERED 
	(
		[ID_Obj3]
	)  ON [PRIMARY] 
GO

ALTER TABLE [dbo].[SecondaryObjects] WITH NOCHECK ADD 
	CONSTRAINT [PK_SecondaryObjects] PRIMARY KEY  CLUSTERED 
	(
		[ID_sys]
	)  ON [PRIMARY] 
GO

ALTER TABLE [dbo].[SecondaryObjects] ADD 
	CONSTRAINT [FK_SecondaryObjects_Obj1] FOREIGN KEY 
	(
		[ID_Obj1]
	) REFERENCES [dbo].[Obj1] (
		[ID_1]
	) ON UPDATE CASCADE ,
	CONSTRAINT [FK_SecondaryObjects_Obj2] FOREIGN KEY 
	(
		[ID_Obj2]
	) REFERENCES [dbo].[Obj2] (
		[ID_Obj2]
	) ON UPDATE CASCADE ,
	CONSTRAINT [FK_SecondaryObjects_Obj3] FOREIGN KEY 
	(
		[ID_Obj3]
	) REFERENCES [dbo].[Obj3] (
		[ID_Obj3]
	) ON UPDATE CASCADE 
GO

...
Рейтинг: 0 / 0
Сводная таблица вторичных данных
    #34565450
ModelR
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
Сводная таблица вторичных данных
    #34565567
Fagrant
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ModelRдля начала
Ну, разве что для начала. Прочитал всю ветку. Узнал новое для меня слово Patronymic. Но каким боком она относится к описанной задаче не понял. По большому счету - флуд, imho. Ради трех слов о глобальном реестре сущностей - не стоило.
...
Рейтинг: 0 / 0
Сводная таблица вторичных данных
    #34568062
ModelR
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Дык если FagrantОчень не хочется делать в ней несколько FK на главные таблицы. Подскажите плиз.то Fagrantо глобальном реестре сущностей как раз по теме. А флуд... увы да, на 2/3, но мы ж его сами флудим, не марсиане ж.
...
Рейтинг: 0 / 0
Сводная таблица вторичных данных
    #34568834
-------------
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
FagrantОчень не хочется делать в ней несколько FK на главные таблицы
Ну и не делай
А для связи используй отдельные таблички

Код: plaintext
1.
2.
3.
4.
5.
6.
link1
   ID_Obj1
   ID_sys	

link2
   ID_Obj2
   ID_sys
...
Рейтинг: 0 / 0
Сводная таблица вторичных данных
    #34569406
Fagrant
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
------------- FagrantОчень не хочется делать в ней несколько FK на главные таблицы
Ну и не делай
А для связи используй отдельные таблички
Я не хотел поля-то плодить, а ты предлагаешь на каждый объект целую таблицу заводить :)

Тогда уж одну на все:
Код: plaintext
1.
2.
3.
link
   ID_sys
   ID_Obj
   Obj_Num

Вариант. А еще есть?
...
Рейтинг: 0 / 0
Сводная таблица вторичных данных
    #34569648
Фотография Анатолий Иванов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Fagrant
Я не хотел поля-то плодить, а ты предлагаешь на каждый объект целую таблицу заводить :)
Да ладно, судя по всему вам как раз нужно что-то типа ORDB и работать с ней через что-то типа Hibernate.
...
Рейтинг: 0 / 0
9 сообщений из 9, страница 1 из 1
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / Сводная таблица вторичных данных
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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