Вниз
Скачать: CL | DM;

структура базы данных   Найти похожие ветки 

← →
mezozoy   (2006-12-18 12:47) [0]

Помогите люди добрые! Не могу разобраться с структурой базы данных (IB 6юч). Есть таблица отношения тариф-пользователь (id, id_user, id_tarif, begin_date, end_date), где id_tarif-ключ  к таблицам тарификации. У каждой услуги структура таблицы тарифов разная. Поэтому я сделал 3 таблицы Tarif_*. (по числу предоставляемых услуг). Как мне теперь прицепить все эти таблицы к Id_tarif? Заранее спасибо.


← →
clickmaker ©   (2006-12-18 12:56) [1]


> mezozoy   (18.12.06 12:47)

а насколько разные? Я бы слил общую часть в одну таблицу, а разницу представил бы в виде 3 таблиц-аппендиксов


← →
mezozoy   (2006-12-18 13:01) [2]

Услуги - это кабельное телевидение, интернет, и домофоны. Телевидение и домофоны влепить в одну таблицу не вопрос т.к. там только абонентская плата и разовые платежи. А вот с net-ом проблема т.к. платежи зависят от трафика


← →
Sergey13 ©   (2006-12-18 13:01) [3]

> У каждой услуги структура таблицы тарифов разная.

ИМХО - это как раз и есть главная ошибка.


← →
Desdechado ©   (2006-12-18 13:02) [4]

зачем 3 таблицы?
Разница, как я понимаю, в схеме начисления (тарификации), а не в структуре.


← →
clickmaker ©   (2006-12-18 13:04) [5]

ну я имею в виду примерно это:
t_tarif(id_tarif, tarif_type, ... общие поля для всех трех)
tarif_type - 1,2,3 соотв. телевидение, интернет, и домофоны
t_tarif_tv(id_tarif, ... специфика)
t_tarif_inet(id_tarif, ... специфика)
t_tarif_domofon(id_tarif, ... специфика)

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


← →
mezozoy   (2006-12-18 13:13) [6]

Спасибо всем. Буду пробовать.


← →
Sergey13 ©   (2006-12-18 13:17) [7]

> [5] clickmaker ©   (18.12.06 13:04)

Можно и немного по другому.
t_tarif(id_tarif, name)
specifik_type (id_spec, name)
detal_tarif(id_tarif,id_spec,value_spec)


← →
mezozoy   (2006-12-18 13:19) [8]


> > У каждой услуги структура таблицы тарифов разная.
>
> ИМХО - это как раз и есть главная ошибка.
> <Цитата>

Поясни пожалуйста что ты имел в виду.


← →
Sergey13 ©   (2006-12-18 13:25) [9]

> [8] mezozoy   (18.12.06 13:19)

То, что на новый тариф будешь еще одну таблицу заводить + программу переписывать. А это не есть гут.


← →
mezozoy   (2006-12-18 13:35) [10]


> То, что на новый тариф будешь еще одну таблицу заводить
> + программу переписывать. А это не есть гут.

Я понимаю, что это далеко не гут. A какой выход?


← →
Sergey13 ©   (2006-12-18 13:36) [11]

> [10] mezozoy   (18.12.06 13:35)

Я предложил вариант в
> [7] Sergey13 ©   (18.12.06 13:17)


← →
mezozoy   (2006-12-18 13:39) [12]

Спасибо!!! Буду пробовать.


← →
clickmaker ©   (2006-12-18 13:57) [13]


> [7] Sergey13 ©   (18.12.06 13:17)

ну это уже тянет на почти совсем универсальный вариант
t_class (class_id, ...)
t_object (object_id, class_id...
t_class_attributes(class_id, attribute_id, name, data_type)
t_object_attributes (object_id, attribute_id, value)

вопрос только, стоит ли игра свеч


← →
Sergey13 ©   (2006-12-18 13:59) [14]

> вопрос только, стоит ли игра свеч

Ну это уж автору решать. Я думаю стоит.



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

Скачать: CL | DM;



Память: 0.48 MB
Время: 0.045 c
2-1172168261
Pr Woll
2007-02-22 21:17
2007.03.18
Опознать строку ввода


2-1172335456
Gamer
2007-02-24 19:44
2007.03.18
взаимодействие DLL(!) с программой


2-1172596618
ы
2007-02-27 20:16
2007.03.18
классы и записи


1-1169552982
Сало
2007-01-23 14:49
2007.03.18
Перехват всех ошибок в консольных приложениях


4-1162883472
zek
2006-11-07 10:11
2007.03.18
Как сравить два FILETIME




   Наверх