не забывайте о транзакциях. Производительность хороша, но проста (ЕСЛИ СУЩЕСТВУЕТ..) подход очень опасен.
, Когда несколько потоков попытаются работать Вставлять-или-обновлять, можно легко получить нарушение первичного ключа.
Решения, предоставленные @Beau Crawford & @Esteban показывают общее представление, но подверженный ошибкам.
Для предотвращения мертвых блокировок и нарушений PK можно использовать что-то вроде этого:
begin tran
if exists (select * from table with (updlock,serializable) where key = @key)
begin
update table set ...
where key = @key
end
else
begin
insert into table (key, ...)
values (@key, ...)
end
commit tran
или
begin tran
update table with (serializable) set ...
where key = @key
if @@rowcount = 0
begin
insert into table (key, ...) values (@key,..)
end
commit tran
Я создал сайт, используя Umbraco, с отдельным приложением с базой данных автомобилей. Я использовал ту же базу данных, что и Umbraco, и снабдил все свои пользовательские таблицы приложений несколькими буквами, чтобы их можно было легко различать (например, cars_xxx)
. У меня не было проблем с этим расположением, и я не верю, что существует большой риск участвует. Конечно, вам нужно будет соблюдать осторожность при обновлении Umbraco (никогда не обновляйтесь в реальной среде до полного тестирования, и желательно в любом случае делать это локально), однако маловероятно, что сценарий обновления когда-либо изменит или удалит любые таблицы, о которых он не знает .
Сейчас для umbraco доступно множество документов - гораздо больше, чем когда я начинал ... однако такой вопрос всегда лучше всего подходит для форумов. :)
всего наилучшего greg
Вы можете использовать Umbraco API для хранения и извлечения ваших данных и наслаждаться тем, что вам не нужно беспокоиться о таблицах и многом другом. Или вы создаете свои собственные таблицы. Делайте, как говорит Грегориус - использование umbraco db - это нормально.
Ваш выбор зависит от:
Если нет - тогда используйте Umbraco API
Остальные ответы вы найдете на http://our.umbraco.org
/ Jesper Ordrup