База данных предназначена для хранения данных, это единственная цель базы данных (и отнюдь не маленькая задача).И данные являются одной из самых (если не самых) важных частей вашего приложения.
Таким образом, вы делаете что-то ( что-нибудь ), которое не нарушит целостностьваших данных.
То, как вы получаете доступ, как вы обновляете, относительно менее важно, чем целостность данных.Они всегда могут быть оптимизированы.Вы не можете поставить под угрозу целостность данных.(Если вы хотите получить некоторые указания о том, как оптимизировать, вы должны указать технологию, которую вы используете, и подход, которым вы придерживаетесь / планируете следовать)
Итак: вы не разрешаете нулевые значения для title
и столбцы desc
.
Проблема 2 на самом деле не является проблемой вообще: размер хранимой процедуры (если вы именно это подразумевали под SP) для обновления базы данных не зависит отобъем данных.Даже если у вас огромная таблица, у вас все еще есть только одна (или куча) хранимых процедур для манипулирования данными.
Проблема 2 может быть решена несколькими подходами,в зависимости от технологии, которую вы используете.Даже если у вас есть сто столбцов, в вашем приложении не будет сотен различных действий, каждое для столбца.Столбцы логически сгруппированы, вы обновляете их набор за обновление.Вам определенно не понадобится отдельная процедура для каждого столбца.
Ваша архитектура и дизайн приложения имеет значение здесь.Давайте рассмотрим простой сценарий: пользовательский интерфейс, где вы позволяете пользователю просматривать название и описание форума и обновлять их оба.
Вы обеспокоены тем, что пользователь может захотеть обновить только заголовок и дляэто вы должны получить последнее описание и обновить их обоих.
Но почему?
Вам все равно придется их обоих забрать .Чтобы отобразить их.Вы можете использовать те же значения для обновления.Все, что вам нужно, это убедиться, что кто-то еще не обновил столбец, и вы перезаписываете его.Вы можете использовать столбец modified_by
, чтобы проверить, являются ли ваши данные самыми последними или нет.(Одна из причин, по которой этот столбец должен содержать время в дополнение к дате).
См. Следует ли применять ограничения на уровне базы данных, а также на уровне приложения? для обсужденияна похожую тему.