powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / Множество однотипных таблиц.
25 сообщений из 34, страница 1 из 2
Множество однотипных таблиц.
    #36042347
Nahel
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Всем привет!
С проектированием БД несилен только учусь, по этому подхожу к архетектуре базы с точки зрения ООП.
В БД должно присудствовать множество однотипных таблиц, типа

CREATE TABLE [Parent](
[nIdParent] [int] IDENTITY(1,1) NOT NULL,
[strName] [nvarchar](15) NOT NULL)
Правильно ли будет сделать 1 общую таблицу этого типа, а все остальные будут иметь вид
CREATE TABLE [Child](
[nIdChild] [int] IDENTITY(1,1) NOT NULL,
[nIdParent] [int] NOT NULL)
Уместенл такой подход, чем это грозит, или же плодить таблицы подобные первой?
Спасибо за рание.
...
Рейтинг: 0 / 0
Множество однотипных таблиц.
    #36042396
Фотография S.G.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Судя по словам "Parent" и "Child" вы собираетесь делать древовидную структуру. Для этого не надо плодить таблиц, достаточно одной таблицы, плюс еще прочитать про построение таких структур в БД.
...
Рейтинг: 0 / 0
Множество однотипных таблиц.
    #36042411
Nahel
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
S.G.Судя по словам "Parent" и "Child" вы собираетесь делать древовидную структуру. Для этого не надо плодить таблиц, достаточно одной таблицы, плюс еще прочитать про построение таких структур в БД.
Я бы сказал что это "Наследование", ну вот к примеру есть 15-17 справочных таблиц, содержащие в себе только наименование, есть ли смысл создавать 15-17 таблиц в БД, с одинаковыми полями? или же всетаки существует какой другой/корректный способ?
...
Рейтинг: 0 / 0
Множество однотипных таблиц.
    #36042446
Фотография ChA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
NahelЯ бы сказал что это "Наследование", ну вот к примеру есть 15-17 справочных таблиц, содержащие в себе только наименование, есть ли смысл создавать 15-17 таблиц в БД, с одинаковыми полями?А почему нет ? Боитесь ограничения на количество таблиц в БД ? Во всех вменяемых СУБД такой предел лежит далеко за гранью практического применения.Nahelили же всетаки существует какой другой/корректный способ?А это уже надо бы более точно описывать исходную задачу, а не предполагаемый Вами способ её решения.
...
Рейтинг: 0 / 0
Множество однотипных таблиц.
    #36042474
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Nahel wrote:
> С проектированием БД несилен только учусь, по этому подхожу к
> архетектуре базы с точки зрения ООП.
> В БД должно присудствовать множество однотипных таблиц, типа
>
> CREATE TABLE [Parent](

Если ты в проектировании БД не силён, то зачем тогда формулировать
свою задачу в терминах проектирования БД ?
Ты по-русски, по простому скажи.

Что значит "в БД должно присудствовать множество однотипных таблиц, типа" ?
В БД вообще НИЧЕГО не обязано присутствовать. БД данные должна хранить,
а как - это уже её дело.
Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
Множество однотипных таблиц.
    #36042624
Nahel
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ChAА почему нет ? Боитесь ограничения на количество таблиц в БД ? Во всех вменяемых СУБД такой предел лежит далеко за гранью практического применения.
Нет страх тут не причом, ищу более рациональное решение.

ChAА это уже надо бы более точно описывать исходную задачу, а не предполагаемый Вами способ её решения.

MasterZiv
Ты по-русски, по простому скажи.

Есть справочная иформация
Материалы
Объекты
Типы
Свойства
И таких справочников около 20, в каждом из них только одно значение Название/наименование, и в каждом из справочнике не более 50 записей.
Вопрос, правельнее будет сделать отдельную таблицу для каждого справочника или же есть более рациональный способ.

Сахават ЮсифовNahel,
пшел дурак
ахуительно прагматично, шлобы ты само на йух
...
Рейтинг: 0 / 0
Множество однотипных таблиц.
    #36043123
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Nahel wrote:

> Есть справочная иформация
> Материалы
> Объекты
> Типы
> Свойства
> И таких справочников около 20, в каждом из них только одно значение
> Название/наименование, и в каждом из справочнике не более 50 записей.
> Вопрос, правельнее будет сделать отдельную таблицу для каждого
> справочника или же есть более рациональный способ.

Я немного понял, но если у тебя есть 10 таблиц с ровно одинаковой
структурой, то надо их делат одной таблицей. Возможно, добавив ещё
одно поле -- тип сущности -- в первичный ключ.
Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
Множество однотипных таблиц.
    #36043203
Фотография Compositum
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Nahel
Сахават ЮсифовNahel,
пшел дурак
ахуительно прагматично, шлобы ты само на йух
оно с оного и не слезает

По теме топика: если юзаешь sql server 2008, то в нем появился тип hierarchyid . Вполне возможно, что захочешь заюзать его (как вариант, помимо стандартного, предложенного выше S.G.).
...
Рейтинг: 0 / 0
Множество однотипных таблиц.
    #36043257
Senya_L
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
NahelChAА почему нет ? Боитесь ограничения на количество таблиц в БД ? Во всех вменяемых СУБД такой предел лежит далеко за гранью практического применения.
Нет страх тут не причом, ищу более рациональное решение.Я вот не вижу причин сливать все справочники в одну таблицу, имхо. Конечно, если можно выстроить иерархию справочных данных - то другое дело. Пусть будет 40 таблиц, да хоть 100 - что тут страшного? А вот если множество справочников "запихнуть" в одну таблицу, то можно с ростом объемов данных и тормоза получить при выборках типа
Код: plaintext
1.
2.
3.
4.
SELECT
  *
FROM SuperRefTbl
WHERE RefType =  10  -- типа фильтруем
Не забывайте, что селективность по полю RefType будет невысокой.
MasterZivВозможно, добавив ещё
одно поле -- тип сущности -- в первичный ключ.
Не все СУБД поддерживают FK, ссылающиеся на составные PK.
...
Рейтинг: 0 / 0
Множество однотипных таблиц.
    #36043375
дддддд
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
NahelЕсть справочная иформация
Материалы
Объекты
Типы
Свойства
И таких справочников около 20, в каждом из них только одно значение Название/наименование, и в каждом из справочнике не более 50 записей.
Вопрос, правельнее будет сделать отдельную таблицу для каждого справочника или же есть более рациональный способ.


Очень неуверен, что таблицы Материалы должна содержать только одно поле - Наименование.
Может на момент проектирования достаточно одного поля, но в дальнейшем таблица будет разрастаться вширь, т.е. в нее будут добавлятся различные служебные поля.

Также я очень не уверен, что со временем в таблицу Объекты не придется добавить служебные поля, которые будут отличаться от служебных полей таблицы Материалы.

Если все сливать в одну таблицу, то в нее придется добавить все поля, относящиеся ко всем таблицам. Таким образом получите настоящую помойку, которую слили все что можно
...
Рейтинг: 0 / 0
Множество однотипных таблиц.
    #36043394
Дмитрий16
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Nahel
... Вопрос, правельнее будет сделать отдельную таблицу для каждого справочника или же есть более рациональный способ.


Да. Для _разных_ справочников надо делать разные таблицы. В одну таблицу имеет смысл сводить только в случае, если справочники реально одинаковые.
Напимер:
Для таблиц ГабаритныеРазмерыТранзисторов, ГабаритныеРазмерыРезисторов и т.п. имеет смысл сделать один справочник - ГабаритныеРазмеры. И далее рулить своиствами типами и т.п.

Но если в справочниках повторяется только поле название - однозначно в разные таблицы.
...
Рейтинг: 0 / 0
Множество однотипных таблиц.
    #36043423
SantaVF
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
А еще есть объектноориентированная БД Cashe. Может быть ее идеология вам подойдет
...
Рейтинг: 0 / 0
Множество однотипных таблиц.
    #36043468
Nahel
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Всем спасибо. Видемо буду делать отдельные таблицы.
Почитал про hierarchyid прикольно, но разработка идет на 2005 sql.
Еще раз всме спасибо.
...
Рейтинг: 0 / 0
Множество однотипных таблиц.
    #36043894
Фотография ChA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Senya_LНе все СУБД поддерживают FK, ссылающиеся на составные PK.Странно. Пример такой СУБД можно ?
...
Рейтинг: 0 / 0
Множество однотипных таблиц.
    #36044506
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Senya_L wrote:

> дело. Пусть будет 40 таблиц, да хоть 100 - что тут страшного? А вот если

Страшного то, что каждый из этих 40 справочников своим запросом надо
обрабатывать. Вместо 4 запросов - 4 * 40 = 160 запросов. Нравится ?

> множество справочников "запихнуть" в одну таблицу, то можно с ростом
> объемов данных и тормоза получить при выборках типа

Не получишь.

> Не все СУБД поддерживают FK, ссылающиеся на составные PK.
Все.
Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
Множество однотипных таблиц.
    #36044690
Senya_L
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MasterZiv
> Не все СУБД поддерживают FK, ссылающиеся на составные PK.
Все.
Да, я ошибся. Я не пользуюсь составными PK, отсюда ошибка.
MasterZiv> множество справочников "запихнуть" в одну таблицу, то можно с ростом
> объемов данных и тормоза получить при выборках типа

Не получишь.Откуда такая уверенность?
...
Рейтинг: 0 / 0
Множество однотипных таблиц.
    #36045124
дддддд
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
MasterZiv
Senya_L wrote:

Страшного то, что каждый из этих 40 справочников своим запросом надо
обрабатывать. Вместо 4 запросов - 4 * 40 = 160 запросов. Нравится ?



Приведите пример, где надо объединять 40 справочников .
...
Рейтинг: 0 / 0
Множество однотипных таблиц.
    #36047253
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Senya_L wrote:

> > множество справочников "запихнуть" в одну таблицу, то можно с ростом
> > объемов данных и тормоза получить при выборках типа
>
> Не получишь.
>
> Откуда такая уверенность?

Из знаний, из института, из опыта, -- долго в общем объяснять.
Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
Множество однотипных таблиц.
    #36047255
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
дддддд wrote:

> Приведите пример, где надо объединять 40 *справочников*.
А я тут при чём ?

Это вот авторов вопроса спрашивайте.
Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
Множество однотипных таблиц.
    #36048254
Фотография softwarer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MasterZivСтрашного то, что каждый из этих 40 справочников своим запросом надо
обрабатывать. Вместо 4 запросов - 4 * 40 = 160 запросов. Нравится ?
Я в очередной раз прошу объяснить, в какой древней версии Акцесса или не знаю уж чего справедлив такой "страшный" аргумент. Какие ещё живы инструментальные средства, в которых не работает

Код: plaintext
SQL = 'select &TableName_id, &TableName_name from &TableName'
...
Рейтинг: 0 / 0
Множество однотипных таблиц.
    #36048495
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
softwarer wrote:

> Я в очередной раз прошу объяснить, в какой древней версии Акцесса или не
> знаю уж чего справедлив такой "страшный" аргумент. Какие ещё живы
> инструментальные средства, в которых не работает
>
> SQL = 'select &TableName_id, &TableName_name from &TableName'

А это в любой нормальной СУБД плохо, Потому что план будет каждый
раз строится, и по неизвестно какой таблице.

Не, я что, я -- ничего. Нравится -- уперёд !
Смысла только нету.
Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
Множество однотипных таблиц.
    #36048658
Фотография softwarer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MasterZivА это в любой нормальной СУБД плохо, Потому что план будет каждый
раз строится,
1. С чего бы это вдруг?
2. Даже если вдруг где-то будет строиться каждый раз: и насколько тяжело построить план для такого запроса?

MasterZivНе, я что, я -- ничего. Нравится -- уперёд ! Смысла только нету.
Делать чёрт знает что из схемы БД смысла нааамного больше.
...
Рейтинг: 0 / 0
Множество однотипных таблиц.
    #36049929
LelikBolek
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
А чем плох или хорош такой вариант:
На примере хранения разных видов документов:
есть общая часть всех документов, таблица documents(document_ID,No,Data,doc_type_id,Note)
есть таблица типов документов, doc_type (doc_type_id,name)
и для каждого типа документов которому нужны доп характеристики делаем таблицы-дополнения со связью 1-1 к documents, например:
prixod_apx(document_id,field1,field2...)
rasxod_apx(document_id,field1...)

при этом общая обработка документов (журнал, поиск, регистрация) значительно упрощается,
добавление нового типа документа сразу учитывается в общих обработках,
добавление характеристик в какой-либо отдельный вид документа не влияет на работу с другими видами документов,
а для частных обработок документов один раз сделать вьюхи на каждый вид документа с полным набором полей для каждого вида документа и где надо - юзать их ?
...
Рейтинг: 0 / 0
Множество однотипных таблиц.
    #36050528
дддддд
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Неплохой вариант. Можно еще так:
В каждой таблице документов создавать одинаковые поля для заголовка
например
ID
NUMBER
DATE
DOC_TYPE
.....

и потом объеденить их в одну вьюху.
в этом случае при обращению к одному типу документа не надо делать никаких связок.
...
Рейтинг: 0 / 0
Множество однотипных таблиц.
    #36051621
Фотография softwarer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
LelikBolekА чем плох или хорош такой вариант:
На примере хранения разных видов документов:
есть общая часть всех документов,
Для документов он хорош. Справочники - не документы. Разница в том, что "список документов" имеет смысл и нередко используется, а вот "список значений из всех справочников вперемешку" - бред. В том, что нам часто нужна возможность сослаться на "документ любого из множества типов", а вот ссылка на справочник всегда конкретна. В том, что разные типы документов нередко обрабатываются существенно общей бизнес-логикой, а у справочников и операций-то нет, CRUD и почти всё, и обрабатываются они поодиночке.

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


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