powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / Система наименований таблиц
15 сообщений из 15, страница 1 из 1
Система наименований таблиц
    #34195541
Zanka
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Пару лет назад написали WEB-приложение (Apache, Oracle, modplsql) по нефтянке.
Модульная структура приложения, все что можно по интерфейсу также хранится в базе.
Приложение средних размеров, порядка сотни таблиц, но мы совсем не заморачивались на нормализации и лог-журналах (не до того было, да и сервер был слаабенький).

За это время у пользователей возникло множество хотелок. Часть из них реализовали, часть запланировали в новой версии... Старый сервер сдох (оказалось, что приложение всем понравилось и только официально зарегестрированных пользователей около 250), купили новый около года назад, может не очень крутой, но заметно лучше старого.

Теперь проектируется база средних размеров для WEB-приложения. Сохраняем такую же модульную структуру, большинство таблиц ложится в конкретные модули, хотя и может использоваться в других. Таблиц будет заметно больше, чем раньше.

Проблема: Как грамотно реализовать систему наименований?
Мои смешные варианты:

Вариант 1. Разделить модули по отдельным схемам, плюс основная схема для всяких административных примочек. Но наш АБД говорит, что так не делается. Тем более при кажущемся нам большом количестве таблиц, - это не так уж и много. Плюс возникнут легкие проблемы с DAD.

Вариант 2. В названии каждой таблицы, кроме всего прочего, использовать префикс с названием модуля. Так как храним мы довольно специализированные данные, есть вероятность что мы можем уйти за ограничение на длину названия (или оно больше 32 символов?).

P/S/ Может быть я неправильно назвала тему, возможно есть другие варианты, не связанные с именованием таблиц. Я слышала что-то про NAMESPACE, но пока в дебрях документации к моему случаю привязать не могу.
...
Рейтинг: 0 / 0
Система наименований таблиц
    #34195702
Фотография Shtock
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
у нас все лежит в одной схеме,добавляем префикс в зависимости от предметной области или назначения.Например,все таблицы справочников начинаются с ref, все таблицы налогового учета-с tax_, бухгалтерского учета с acc_
...
Рейтинг: 0 / 0
Система наименований таблиц
    #34195752
Alexey Kudinov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Тут главное, чтобы была какая-либо система наименований и все ее придерживались.
Какая именно - это уже дело вкуса.

Лично я предпочитаю, чтобы таблицы были сгруппированы по именам "основной сущности", к к-й они относятся
Т.е. Loans , Loans Statuses, Loans Comments, Loans Tranches и т.п.
Тоже самое и с другими объектами БД.
...
Рейтинг: 0 / 0
Система наименований таблиц
    #34195965
tru55
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
есть вероятность что мы можем уйти за ограничение на длину названия (или оно больше 32 символов?).

Маленькая поправка - ограничение на размер наименования объекта в Oracle - 30 символов
...
Рейтинг: 0 / 0
Система наименований таблиц
    #34196001
Zanka
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
То есть у всех обычно все лежит в одной схеме.
Тогда можно маленький вопрос, а сколько это таблиц?
...
Рейтинг: 0 / 0
Система наименований таблиц
    #34196152
Zanka
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Shtockу нас все лежит в одной схеме,добавляем префикс в зависимости от предметной области или назначения.Например,все таблицы справочников начинаются с ref, все таблицы налогового учета-с tax_, бухгалтерского учета с acc_

А есть строгое соглашение, что все префиксы имеют длину три символа, или это совсем не обязательно?
...
Рейтинг: 0 / 0
Система наименований таблиц
    #34196244
Фотография Shtock
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
просто в три буквы получалось всегда,я думаю никто не запрещает и до четырех довести.Русские мы-любые мысли мы можем тремя буквами выразить. Ну у меня порядка 450.В Новой афине например (абс такая) в схеме od я видел и 900 и более таблиц.
...
Рейтинг: 0 / 0
Система наименований таблиц
    #34196301
Zanka
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Спасибо, значит будем работать в одной схеме и сочинять префиксы, вот только в три буквы уложиться уже не получается.
...
Рейтинг: 0 / 0
Система наименований таблиц
    #34196406
Фотография Shtock
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
а пример можно,что не укладывается?На самом деле проблема с несколькими схемами - надо давать гранты не только на select, но и на reference...
...
Рейтинг: 0 / 0
Система наименований таблиц
    #34198486
Zanka
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Были случаи, когда не укладывалось в первом приближении, но потом изгалялись, что-то сокращали и все получалось, но случаются названия по 29 символов. Например, результирующая таблица по пропласткам по скважине в модуле технологические режимы. Аналогичная таблица в покупном программном продукте называется WELL_LOG_RESULT_SUBLAYERS (25 символов). Добавляем префикс для модуля TRG_ (29 символов).

У меня в другой задаче было, например справочник затрат входящих логистических схем, или справочник груп входящих логистических схем.
...
Рейтинг: 0 / 0
Система наименований таблиц
    #34198714
Фотография Роман Дынник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Мы не используем ни префиксы, ни схемы.
Сущности именуем в единственном числе, к примеру, Account вместо Account s
А отношение к конкретным модулям определено в используемом нами case-средстве - на каждый модуль свой package.
Сущности истории имеют суффикс History.
...
Рейтинг: 0 / 0
Система наименований таблиц
    #34199724
Фотография Программист-Любитель
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
префиксы
TAB_ - обычные нормальные таблицы.
CALC_ - для хранения результатов вычислений
SUM_ - для хранения просуммированных (свернутых) результатов
PIVOT_ - для храрнения результатов сводных запросов
DICT_ - словари/справочники
MIDAS_ - таблицы с копиями данных из системы MIDAS больной черной AS400

суффикс History - для хранения данных за все даты (история по датам)

корни (между префиксами и суффиксом)
из одного слова Account Customer Balance Deal Deam
из нескольких слов DealGroup DealSubGroup DealDuration DealProlongation

вот такая собственно хрень о паре сотен таблиц.
...
Рейтинг: 0 / 0
Система наименований таблиц
    #34200060
Фотография softwarer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ZankaВариант 1. Разделить модули по отдельным схемам, плюс основная схема для всяких административных примочек. Но наш АБД говорит, что так не делается.
Ваш АБД знает не все. Для примера может посмотреть в Oracle E-Business Suite, и втирать уже им, что так не делается :)

Так делается, есть свои плюсы и свои минусы. Основной плюс - инкапсуляция; доступ модуля к внутренностям другого модуля регулируется грантами. Основной минус - жесткая завязка на имена схем. Резюмируя - подход хорош для действительно больших приложений, когда вероятно, что оно будет крутиться на своем, отдельном экземпляре.

ZankaВариант 2. В названии каждой таблицы, кроме всего прочего, использовать префикс с названием модуля.
Я использую этот подход и довольно хорошего мнения о нем.

Просто для примера преимуществ - сейчас у нас на одном сервере развернута схема для разработки и три не то четыре для тестирования - все одной структуры, и все спокойно живут.

Zankaесть вероятность что мы можем уйти за ограничение на длину названия (или оно больше 32 символов?).
Есть такая вероятность. Она всегда есть, и без префиксов тоже. Неприятно, но что поделаешь.
...
Рейтинг: 0 / 0
Система наименований таблиц
    #34201900
Zanka
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
softwarerВаш АБД знает не все. Для примера может посмотреть в Oracle E-Business Suite, и втирать уже им, что так не делается :).
Все-таки наш АБД кое-что знает. Он уточнял, собираемся ли мы разграничить таким способом доступ к данным, но мы сказали ему, что изначально такая задача не ставится.

softwarerподход хорош для действительно больших приложений, когда вероятно, что оно будет крутиться на своем, отдельном экземпляре.
Наше приложение, хоть и небольшое, крутится на своем, отдельном экземпляре. Просто когда общий сервер загибался наши заказчики выбили для задачи отдельный сервер, а мы теперь стоим на его страже :)
...
Рейтинг: 0 / 0
Система наименований таблиц
    #34202579
Фотография RedPank
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А может реализовать словарь для Вашей БД? С описанием таблиц ...
...
Рейтинг: 0 / 0
15 сообщений из 15, страница 1 из 1
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / Система наименований таблиц
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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