Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2004.10.24;
Скачать: CL | DM;

Вниз

Помогите составить структуру БД.   Найти похожие ветки 

 
КаПиБаРа ©   (2004-10-06 13:53) [0]

Несколько раз сталкивался с такой ситуацией. Настало время узнать истину :)

Имеются объекты А и Б. У объекта А свойства к, л, м. У объекта Б свойства к, л, м, н, о.
Требуется фиксировать события т происходящие с объктами А и Б.

Вроде можно построить такие таблицы:
1 таблица "Объекты" с полями:
ID, к, л, м, type_A_or_B

2 таблица "Дополнительные свойства" с полями:
ID, ID_1табл, н, о.

3 таблица "События" с полями:
ID, ID_1табл, т

Но есть проблемка. Для того что бы человек смог идентифицировать объект он должен увидеть свойство м для объекта А или свойства м + н для объекта Б.
Как организовать таблицы в такой базе?

=====================================
Если вы однажды помогли другу в беде,
он обязательно о вас вспомнит,
когда снова попадет в беду.
=====================================


 
TUser ©   (2004-10-06 14:00) [1]

Я предлагаю из первой таблицы убрать type, сделать отдельную табл для А и ссылку там на поля в первой таблице, то же самое - для Б. И потом на запрос выдавать нужные человеку поля.

1 таблица "Объекты" с полями:
ID1, к, л, м

2 таблица "Объекты А"
ID2, ID1

3 таблица "Объекты Б" с полями:
ID3, ID1, н, о.

4 таблица "События" с полями:
ID4, ID2, ID3, т


 
TUser ©   (2004-10-06 14:01) [2]

Я предлагаю из первой таблицы убрать type, сделать отдельную табл для А и ссылку там на поля в первой таблице, то же самое - для Б. И потом на запрос выдавать нужные человеку поля.

1 таблица "Объекты" с полями:
ID1, к, л, м

2 таблица "Объекты А"
ID2, ID1

3 таблица "Объекты Б" с полями:
ID3, ID1, н, о.

4 таблица "События" с полями:
ID4, ID2, ID3, т


 
Sergey13 ©   (2004-10-06 14:06) [3]

2КаПиБаРа ©   (06.10.04 13:53)
А в чем "нужность" 2 таблицы? Почему не все в одной?


 
КаПиБаРа ©   (2004-10-06 14:09) [4]

TUser ©   (06.10.04 14:00) [1]
Забыл сказать. Нужно получить такое представление со следующими полями:
к, л, м, т.

С вашей структурой сложный запрос будет.

Есть идея в первую таблицу ввести поле д, которое для объекта А будет равно м, а для объекта Б будет равно м + н.

И получать представление:
к, л, д, т.

Как такой вариант с точки зрения профессионалmys[ разработчиков БД.


 
1008 ©   (2004-10-06 14:11) [5]

КаПиБаРа ©  (06.10.04 14:09) [4]

Create View ...


 
КаПиБаРа ©   (2004-10-06 14:15) [6]

Sergey13 ©   (06.10.04 14:06) [3]
А в чем "нужность" 2 таблицы? Почему не все в одной?


Ну вроде как бы проведя нормализацию получаем 2 таблицы.


 
КаПиБаРа ©   (2004-10-06 14:20) [7]

Или другой вариант.
Для А и Б создать отдельные таблицы. А представление к, л, м, т получать с помощью union?


 
Sergey13 ©   (2004-10-06 14:24) [8]

2[6] КаПиБаРа ©   (06.10.04 14:15)
>Ну вроде как бы проведя нормализацию получаем 2 таблицы.
Нормализация - это не закон. Это метод. И можно им пользоваться, можно нет, можно пользоваться частично. ИМХО, в данном случае 1 таблица будет эффективнее.


 
Vitaly ©   (2004-10-06 16:30) [9]

уж нормализовать так нормализовать до конца:
3 таблица "События" с полями:
ID, т


 
Vitaly ©   (2004-10-06 16:36) [10]

select f1, f2, 0, 0
from t1, t3
where t1.id = t3.id
union
select f1, f2, f3, f4
from t1, t3, t2
where t1.id = t3.id and t1.id = t2.id1



Страницы: 1 вся ветка

Текущий архив: 2004.10.24;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.051 c
14-1096142345
Verg
2004-09-25 23:59
2004.10.24
И все-таки инверсия


9-1088003860
3d_Vorpos
2004-06-23 19:17
2004.10.24
Проекция на плоскость эксрана точки в пространстве.


1-1096497679
Defunct
2004-09-30 02:41
2004.10.24
Exception: Not enough storage is available to process this ..


3-1095927162
Галинка
2004-09-23 12:12
2004.10.24
Как добавить столбцы в DBGridat Runtime?


1-1097517696
Makhanev A.S.
2004-10-11 22:01
2004.10.24
Мерцание ListView...