Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / Реализация справочников / 25 сообщений из 41, страница 1 из 2
04.09.2008, 10:12
    #35521692
beresa
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Реализация справочников
В базе данных с главной таблицей связано много таблиц-справочников, которые имеют одинаковую структуру (рис. 1 в аттаче). Не будет ошибкой, если я все справочники помещу в одну таблицу и сделаю такую связь, как на рис. 2? Соответственно в этом случае справочники буду разделять по полю Flag в таблице all_table.
Второй способ кажется привлекательнее, т.к. в этом случае сокращается число таблиц.

Использую СУБД Firebird 2.
...
Рейтинг: 0 / 0
04.09.2008, 10:17
    #35521702
ЯпСтам
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Реализация справочников
Дык, вапщето так и надо
...
Рейтинг: 0 / 0
04.09.2008, 10:17
    #35521703
ChA
ChA
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Реализация справочников
beresaВторой способ кажется привлекательнее, т.к. в этом случае сокращается число таблиц.А смысл ? Как я понимаю, у вас отдельные сущности, ссылочная целостность будет легко контролироваться стандартным функционалом СУБД.
...
Рейтинг: 0 / 0
04.09.2008, 10:30
    #35521736
Bogdanov Andrey
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Реализация справочников
beresa в этом случае сокращается число таблиц. Использую СУБД Firebird 2.
А чем в СУБД Firebird привлекательно сокращение числа таблиц? Какие выгоды от этого?
...
Рейтинг: 0 / 0
04.09.2008, 10:54
    #35521811
beresa
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Реализация справочников
ChAА смысл ? Как я понимаю, у вас отдельные сущности, ссылочная целостность будет легко контролироваться стандартным функционалом СУБД.

В каждом из справочнике, который я хочу создать, будет не более 20 записей. И я так подумал, что «плодить» кучу справочников в базе данных это не есть хорошо (ведь же лучше иметь 1 таблицу чем 20 однотипных). Но вот с другой стороны, снизится ли производительность клиентского приложение при работе с базой данной при 2-ом способе реализации?
...
Рейтинг: 0 / 0
04.09.2008, 11:00
    #35521838
beresa
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Реализация справочников
Bogdanov Andrey
А чем в СУБД Firebird привлекательно сокращение числа таблиц? Какие выгоды от этого?
Первое, и самое главное, это удобство работы с базой данной.
А вот насчёт остального, честно, не в курсе.
...
Рейтинг: 0 / 0
04.09.2008, 11:08
    #35521865
ChA
ChA
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Реализация справочников
beresaВ каждом из справочнике, который я хочу создать, будет не более 20 записей. И я так подумал, что «плодить» кучу справочников в базе данных это не есть хорошо (ведь же лучше иметь 1 таблицу чем 20 однотипных). Но вот с другой стороны, снизится ли производительность клиентского приложение при работе с базой данной при 2-ом способе реализации?Да хоть по 2. Никаких преимуществ в "стаскивании" разнородных, скорее всего, по смыслу данных лично я не вижу. Только недостатки. И главный из них в том, что вещи, которые уже реализованы в СУБД на уровне ядра, вы будете вынуждены реализовывать сами. Например, ту же самую ссылочную целостность. Зачем усложнять себе и другим жизнь ?
...
Рейтинг: 0 / 0
04.09.2008, 11:24
    #35521935
beresa
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Реализация справочников
ChAДа хоть по 2. Никаких преимуществ в "стаскивании" разнородных, скорее всего, по смыслу данных лично я не вижу. Только недостатки. И главный из них в том, что вещи, которые уже реализованы в СУБД на уровне ядра, вы будете вынуждены реализовывать сами. Например, ту же самую ссылочную целостность. Зачем усложнять себе и другим жизнь ?

ОК! Спасибо большое. Последую вашему совету и сделаю всё "классическим способом"
...
Рейтинг: 0 / 0
04.09.2008, 11:25
    #35521939
egorych
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Реализация справочников
дискуссия по теме: тынць
...
Рейтинг: 0 / 0
04.09.2008, 15:42
    #35522820
Bogdanov Andrey
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Реализация справочников
beresaПервое, и самое главное, это удобство работы с базой данной.
Я пока не понял в чем это удобство заключается. Придется вместо select * from table писать select * from all_tables where flag=xxx, да еще и помнить значения флагов.
Ну а сделать унифицированную форму для редактирования однотипных справочников, хранящихся в разных таблицах ничуть не сложнее (если не проще), чем то же самое для одной таблицы с флагом.
...
Рейтинг: 0 / 0
04.09.2008, 22:31
    #35523557
Kirill Razuvaev
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Реализация справочников
>> Придется вместо select * from table писать select * from all_tables where
>> flag=xxx, да еще и помнить значения флагов.
Достаточно вспомнить однажды, написав представление соответствующее


Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
05.09.2008, 09:14
    #35523797
Goffman
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Реализация справочников
И смысл тогда все это городить, вместо N таблиц получаем, N представлений + 1 таблица, да еще в пассиве отсутсвие ссыл. целостности и возможные проблемы при (возможном в будущем) расширении некоторых справочников
...
Рейтинг: 0 / 0
05.09.2008, 09:45
    #35523843
Kirill Razuvaev
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Реализация справочников
>> ...И смысл тогда все это городить...
Ну, это, как и все остальное на усмотрение разработчика остается...


Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
05.09.2008, 10:01
    #35523889
Bogdanov Andrey
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Реализация справочников
Kirill Razuvaev>> ...И смысл тогда все это городить...
Ну, это, как и все остальное на усмотрение разработчика остается... Это понятно - каждый делает как хочет. Я просто пытаюсь понять откуда вообще возникают мысли все свалить в одну таблицу. Ведь любой человек сам себе не враг и придумывать реализацию, которая не имеет никаких положительных моментов, наверное, не будет.
...
Рейтинг: 0 / 0
05.09.2008, 11:01
    #35524039
ilias1979
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Реализация справочников
Goffman да еще в пассиве отсутсвие ссыл. целостности

С чего бы это?
PK и FK могут быть составными то есть состоять из 2 и более полей. Поэтому проблем здесь нет.
...
Рейтинг: 0 / 0
05.09.2008, 12:04
    #35524277
Kirill Razuvaev
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Реализация справочников
>> Я просто пытаюсь понять откуда вообще возникают мысли все свалить в одну
>> таблицу.
Мотивов минимум два:
1. Нравится так. :-)
2. Если таких справочников из двух полей - полсотни или больше, так волей не
волей задумаешься о том, что и как. Список объектов БД - и то листать не
удобно...


Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
05.09.2008, 21:07
    #35525615
softwarer
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Реализация справочников
beresaВ каждом из справочнике, который я хочу создать, будет не более 20 записей. И я так подумал, что «плодить» кучу справочников в базе данных это не есть хорошо (ведь же лучше иметь 1 таблицу чем 20 однотипных).
Вы когда пишете код, плодите в нем однотипные переменные i, j, k или же объявляете вместо них массив?
...
Рейтинг: 0 / 0
05.09.2008, 21:09
    #35525617
softwarer
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Реализация справочников
Bogdanov AndreyЯ просто пытаюсь понять откуда вообще возникают мысли все свалить в одну таблицу.
У меня в свое время она была из-за того, что так делалось в системе на Клиппере, с которой я начал знакомство с коммерческими БД-проектами. Ссылочной целостности, само собой, Клиппер не предполагал, зато на этот справочник было навешено некоторое количество общего функционала.
...
Рейтинг: 0 / 0
06.09.2008, 08:18
    #35525788
beresa
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Реализация справочников
Теперь-то после такой дискуссии понятно как нужно делать правильно – все справочники однозначно буду размещать в отдельных таблицах.
Спасибо всем за ответы!
...
Рейтинг: 0 / 0
06.09.2008, 14:25
    #35525921
beresa
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Реализация справочников
В продолжение темы.

Сделал я справочники, связал их с главной таблицей (рис. в аттаче). Когда начал делать клиента, столкнулся с тем, что несколько неудобно работать с lookup полями, да и запросов к базе данных при работе клиента с базой получается многовато. Поэтому пришла мысль убрать все внешние ключи, и заменить их на поля типа varchar(100). Вопрос: стоит ли это делать?
...
Рейтинг: 0 / 0
06.09.2008, 14:49
    #35525938
beresa
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Реализация справочников
В продолжение темы.

Сделал я справочники, связал их с главной таблицей (рис. в аттаче). Когда начал делать клиента, столкнулся с тем, что несколько неудобно работать с lookup полями, да и запросов к базе данных при работе клиента с базой получается многовато. Поэтому пришла мысль убрать все внешние ключи, и заменить их на поля типа varchar(100). Вопрос: стоит ли это делать?
...
Рейтинг: 0 / 0
06.09.2008, 21:51
    #35526161
Николай1
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Реализация справочников
beresaВ продолжение темы.

Сделал я справочники, связал их с главной таблицей (рис. в аттаче). Когда начал делать клиента, столкнулся с тем, что несколько неудобно работать с lookup полями, да и запросов к базе данных при работе клиента с базой получается многовато. Поэтому пришла мысль убрать все внешние ключи, и заменить их на поля типа varchar(100). Вопрос: стоит ли это делать?

Вот и ответ на вопрос, что лучше - сто разных справочников или один, классифицируемый.
Примерно на двадцатом наборе "источник данных - браузер - фильтр - форма", которые отличаются друг от друга только названием таблицы, начинаешь догадываться, что "одной таблицей" было бы куда быстрее...
...
Рейтинг: 0 / 0
06.09.2008, 21:54
    #35526165
Николай1
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Реализация справочников
softwarer beresaВ каждом из справочнике, который я хочу создать, будет не более 20 записей. И я так подумал, что «плодить» кучу справочников в базе данных это не есть хорошо (ведь же лучше иметь 1 таблицу чем 20 однотипных).
Вы когда пишете код, плодите в нем однотипные переменные i, j, k или же объявляете вместо них массив?

Если это набор каких-либо счетчиков для статитики (добавлено, удалено, успешно, не успешно, розовых, синих....), то да, делаю массив. Присваивать все равно как. А вот расширять список и выводить итог из массива гораздо удобнее. А что?
...
Рейтинг: 0 / 0
06.09.2008, 21:57
    #35526169
Николай1
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Реализация справочников
Bogdanov Andrey beresaПервое, и самое главное, это удобство работы с базой данной.
Я пока не понял в чем это удобство заключается. Придется вместо select * from table писать select * from all_tables where flag=xxx, да еще и помнить значения флагов.
Ну а сделать унифицированную форму для редактирования однотипных справочников, хранящихся в разных таблицах ничуть не сложнее (если не проще), чем то же самое для одной таблицы с флагом.

1. Это ж не каждый раз писать придется? А только один?
2. Не стал бы это так категорически утверждать. Динамика, конечно, имеет место быть, но статика, как-то проще и надежнее...
...
Рейтинг: 0 / 0
06.09.2008, 22:13
    #35526179
softwarer
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Реализация справочников
Николай1Примерно на двадцатом наборе "источник данных - браузер - фильтр - форма", которые отличаются друг от друга только названием таблицы, начинаешь догадываться, что "одной таблицей" было бы куда быстрее...
Как раз про таких людей есть замечательный анекдот.

Идет блондинка по рынку, видит ценник: "Яблочные семечки, $100/десяток". Спрашивает у продавца: - А что так дорого-то?
- Понимаете, девушка, у яблочных семечек есть исключительное качество: кто их есть, тот умнеет.
- Вот как? Здорово. Ну тогда отсчитайте на сто баксов.

Пожевала.. проглотила...
- Странно, вроде ничего в себе не чувствую. За что такие деньги, могла бы купить килограмм яблок, там их куда больше и вышло бы раз в десять дешевле.
- Вот видите, красавица, уже и поумнели!
- Точно!! Работает!!!- (шелест банкнот)- Дайте мне еще три десятка!!


Николай1 softwarerВы когда пишете код, плодите в нем однотипные переменные i, j, k
Если это набор каких-либо счетчиков для статитики
Если Вы не знаете, для чего в программировании применяют переменные i, j и k, то, боюсь, начинать Вам нужно не с этого сайта. Если же вдруг знаете, но предпочитаете подменить тему - это лучше всего свидетельствует о вероятном ответе на заданный вопрос.
...
Рейтинг: 0 / 0
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / Реализация справочников / 25 сообщений из 41, страница 1 из 2
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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