Главная страница
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.025 c
3-1096103454
Новенький
2004-09-25 13:10
2004.10.24
Вопрос по Rave Report


4-1095848030
Laymer
2004-09-22 14:13
2004.10.24
Завершения сеанса


4-1095139219
leonidus
2004-09-14 09:20
2004.10.24
Список кодировок


14-1096744491
Dot
2004-10-02 23:14
2004.10.24
microsoft spy++


14-1096565948
IXT
2004-09-30 21:39
2004.10.24
Шифрование!!!