Заставить несколько таблиц иметь одинаковые столбцы в базе данных - PullRequest
0 голосов
/ 18 ноября 2010

Краткое описание: Я довольно новичок в базах данных, и в настоящее время у меня есть одна с двумя таблицами для скрипта типа проверки. Есть ли способ гарантировать, что обе таблицы используют одинаковые типы столбцов? Эта база данных находится в Sybase.

Подробно: Первая таблица - это, по сути, журнал всех проверок, когда-либо выполненных сценарием (допустим, что за один прогон выполнено 106 проверок, поэтому будет [Количество прогонов] x [Нет проверяет <106>]). Вторая таблица предназначена для последнего запуска, поэтому в этом случае она будет содержать 106 строк. Это не постоянное число, однако, и может увеличиться.

У меня вопрос: есть ли способ заставить обе таблицы иметь общие столбцы? В таблице syscolumns я вижу, что для каждой из этих таблиц выделено несколько строк, но, поскольку они одинаковые, можно ли каким-то образом заставить таблицы извлекать свои параметры стиля (корректна ли схема) из одного и того же источника, чтобы любой изменения на одном сделаны на другом?

Спасибо!

Ответы [ 3 ]

2 голосов
/ 18 ноября 2010

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

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

1 голос
/ 18 ноября 2010

Вы описываете странную ситуацию. Как правило, после того, как таблицы были разработаны и внедрены, и приложения начали использовать их, они не изменяются. Конечно, они очень редко меняются в ходе обычной деятельности (т.е. ежедневно или даже еженедельно).

При каких обстоятельствах вы видите необходимость в дополнительных столбцах? Если это повторяющаяся ситуация (а у меня их было несколько), вы должны написать программу для добавления столбцов, и это обеспечит синхронизацию таблиц. Если таблицы должны быть изменены «вручную», это обычно делает человек с правами уровня администратора, и администраторы могут делать все, что они (возможно, по ошибке) могут делать, независимо от намерения исходного дизайнера. Ваша лучшая защита в этом случае - документировать системные требования и убедиться, что они известны и доступны всем, кому, возможно, придется обновить таблицы.

1 голос
/ 18 ноября 2010

Одним из способов управления отношениями между несколькими столбцами и типами данных является использование пользовательских доменов.Некоторые системы СУБД поддерживают определенные пользователем домены.Другие не

Глагол в SQL - «СОЗДАТЬ ДОМЕН».Вы можете посмотреть подробности в вашей документации.

Затем, когда вы создаете таблицы и создаете столбцы, которые составляют таблицы, вы используете созданные вами домены вместо указания типов данных и связанных параметров.Когда два столбца ссылаются на один и тот же домен, они гарантированно имеют одинаковый тип данных.Они также гарантированно имеют одинаковый размер, например, «7» в «char (7)».

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

...