Форум: "Базы";
Текущий архив: 2002.06.06;
Скачать: [xml.tar.bz2];
ВнизInterBase (организация справочников) Найти похожие ветки
← →
User_OKA (2002-05-15 12:54) [0]В моей базе куча справочников. Каждый оформлен как отдельная таблица. Хочу завести на все справочники одну таблицу, в которую, помимо поля для значений и первичного ключа, включить поле типа integer, в котором будет хранится код справочника. Тревожит одно: как все это будет работать и будет ли работать вообще? Ценный опыт старших и не очень старших товарищей сильно бы пригодился!
← →
Alexandr (2002-05-15 13:04) [1]однако, будет лучше работать.
Если руки не кривые.
← →
Val (2002-05-15 13:25) [2]Зависит от смысла полей очень, от организации. Не будет ли много неиспользованного места?
← →
User_OKA (2002-05-15 14:31) [3]to Alexandr
Да руки вроде не кривые.
to Val
Насчет неиспользованного места не понял. И еще насчет смысла полей? Можно поподробнее?
to ВСЕМ
А кто-нибудь может привести кокретный (или не очень) пример БД с такой организацией данных? Можно даже какие-нибудь частные случаи.
← →
Turalyon (2002-05-15 14:38) [4]>User_OKA ©
По поводу места... Тут надо тебе определится на сколько похожая (однородная) информация хранится в справочниках... Может быть в одном хранятся только текст, а в другом текст и цифры (или что угодно другое), тогда в одной таблице у тебя будет куча пустых полей... (не задействованных). Вот...
ИМХО лучше все разбить на несколько таблиц - яснее будет.
← →
Val (2002-05-15 14:52) [5]согласен с Turalyon © (15.05.02 14:38), например:
справочник валют: ид,наименование, символ валюты, курс
справочник материалов: наименование, тип, ед. изм.
← →
VAleksey (2002-05-15 14:53) [6]Реляционная теория разработки баз данных по моему однозначно утверждает, что для разных справочников нужны разные таблицы.
ЗЫ
А сам я повторяю и буду повторять, что зачастую нужно нарушать теорию, выигрывая в производительности. Но каждый конкретный случай нужно разбирать отдельно.
ЗЗЫ
При развитии БД, в том случае если ты не учел все возможные варианты, хранение всех справочников в одной таблице вызовет множество трудностей.
← →
Turalyon (2002-05-15 15:49) [7]>User_OKA ©
Вот еще один пример - сам разрабатывал некоторое время назад, прогу по учету железа (в смысле компов), сталкнулся с тем, что необходимо было задавать конфигурацию для компа и не одной строкой, а желатьельно по пунктам, типа винт (размер такой, Serial Number такой,...) И так по всему возможному железу... а проблемма была в том, что так просто новый справочник не добавишь, если, к примеру, появится новое устройтва типа "крыса", Задача добавления этой "крысы" не тривиальна.
Я решыл е таким же способом как и хочешь, ты, (но не от простоты, а от того, что мне показалось что по другому никак), создал два справочника - один с 2 полями Тип Оборудования (ключ, текст), подразумевается мышь, монитор, материнка, и второй само оборудование - (ключ, внешний ключ на "Тип оборудования", и просто текст, серийны номер), в этот текст пришлось забивать все подряд... типа "Sony Multiscan 200sf" и "S3 Virge 4Мб"
Через з..цу? Согласен :) Возможно решить по другому, но я тогда ничего лучше не придумал....
← →
Ura (2002-05-15 16:49) [8]Совет.
1. Справочник
- ID
- ID справочника (таблица справочников)
- код поля (0,1,2, ...) (т.е. номер столбца в данном справочнике)
- кол полей (храниться в нулевом коде поля) (чтобы знать сколько всего полей. Можно конечно организовать и здесь связанный список, тогда это будет ссылка на следующее поле. А можно это вынести в справочник таблиц - указать там кол столбцов и их тип - но это уже бругая история)
- код тип данных поля (таблица типов данных)
- данные blob
Работать конечно будет не удобно. Но если двигаться к объектным базам то все запросы и вся работа будет делаться через процедуры...
← →
kserg@ukr.net (2002-05-15 19:13) [9]Я тоже решал подобную задачу в БД Кадры: имел кучу справочников,
причем многие из них были схожи по струтуре.
Тогда свел схожие по структуре в таблицы (получилось всего 4) и ввел доп.поле ТИП_СПРАВОЧНИКА.
Позже хотел развить далее и завести таблицу СПРАВОЧНИК_СПРАВОЧНИКОВ, но что-то заломало.
← →
Desdechado (2002-05-15 19:21) [10]все зависит от задачи. были у меня и комбинашки такого вида.
осн. таблица справочника (id, name, прочие общие поля)
доп. таблица справ.1 - (внешний id, доп. поля )
доп. таблица справ.2 - (внешний id, доп. поля )
но, имхо, лучше 1 справочник - 1 таблица. По крайней мере не запутаешься (особенно со ссылочной целостностью). А то окажется, что в таблице можно использовать ключ из 4 справочника и категорически нельзя из 5, а проверить это невесело :))
← →
User_OKA (2002-05-17 07:08) [11]Спасибо всем за советы!
Убедился в том, что для моей задачи лучше иметь одну таблицу на все справочники.
Страницы: 1 вся ветка
Форум: "Базы";
Текущий архив: 2002.06.06;
Скачать: [xml.tar.bz2];
Память: 0.47 MB
Время: 0.006 c