Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Потрепаться";
Текущий архив: 2004.10.24;
Скачать: [xml.tar.bz2];

Вниз

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

 
КаПиБаРа ©   (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;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.47 MB
Время: 0.033 c
1-1097323298
sasha_progman
2004-10-09 16:01
2004.10.24
круглый компонент Image


4-1094799811
Александр1
2004-09-10 11:03
2004.10.24
USB


14-1096618139
Sergo
2004-10-01 12:08
2004.10.24
Я защитил кандидатскую!


14-1096540499
Sergey_F
2004-09-30 14:34
2004.10.24
Как заблокировать клавиатуру в WinXP?


14-1096748231
olookin
2004-10-03 00:17
2004.10.24
Вапрус - почему при работе с графикой пищат наушники?





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский