факторы, которые следует учитывать, прежде чем отбрасывать столбец из таблицы - PullRequest
1 голос
/ 17 ноября 2010

Мы поддерживаем удаление столбцов из таблицы через слой Java.Какие факторы следует учитывать перед тем, как это сделать, например: 1. Нет экземпляров в таблице 2. Поведение различных поставщиков баз данных и т. Д.

Ответы [ 3 ]

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

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

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

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

Это не вопрос Java или JDBC, это скорее вопрос проектирования базы данных.Об этом следует поговорить со своим администратором базы данных.

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

ограничения на столбцы. Если у вас есть столбцы PK или FK, то их нельзя (или нельзя) удалить (легко) в зависимости от поставщика БД. Хотя cols не могут быть «использованы» пользователем, они могут зависеть от других cols / таблиц. Также тотально согласен с Даффимо. ОЧЕНЬ опасно, чтобы пользователи могли отказаться от столбцов. У Oracle есть возможность восстанавливать удаленные столбцы, но действительно, вы хотите пойти по этому пути? Автоматически создаваемые операторы drop всегда были чреваты опасностью.

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

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...