Контроль версий данных внутри Lightswitch

Я разрабатываю приложение Lightswitch, к которому будут обращаться разные пользователи. Некоторая справочная информация. Когда пользователь вносит некоторые изменения в одну или несколько строк, он / она должен иметь возможность сохранить эти изменения во «временном файле», не затрагивая основные данные. Например, если вы работаете с документом Excel и выбираете «Сохранить как», исходный файл все еще будет там. Приложение должно иметь возможность обрабатывать несколько таких «сбережений». Затем пользователь может открыть часть этих «сбережений» и применить их к основной базе данных.

Мой план добиться этого состоит в том, чтобы иметь несколько строк для одних и тех же данных и иметь столбцы с пользовательскими данными, ревизиями и т. д. Моя главная забота здесь заключается в том, как позволить пользователю выбирать, какое «сохранение» открывать при входе в приложение, а затем отфильтровывать правильные данные. Нужно ли мне делать пользовательский элемент управления, чтобы выполнить это, кто-нибудь, кто может дать мне несколько мнений? Своего рода новинка в районе Lightswitch.

Спасибо


person Oskar Eriksson    schedule 09.04.2013    source источник


Ответы (1)


Я использую Lightswitch для разработки интерфейса цитирования, реализующего контроль версий. Я делаю это так, чтобы иметь родительскую таблицу, содержащую список всех котировок (это было бы похоже на окно проводника, полное электронных таблиц Excel, т.е. data.xls, data(1).xls, data(2).xls , так далее.). Каждый из которых имеет уникальный идентификатор и номер версии. Детали каждой ревизии каждой котировки хранятся в дочерней таблице, которая имеет отношение внешнего ключа, связывающее ее с уникальным идентификатором конкретной ревизии конкретной цитаты.

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

Мои таблицы создаются следующим образом:

create table Quotes (
    "QuoteID" uniqueidentifier
        not null primary key,
    "QuoteNumber" nvarchar(8)
        not null,
    "QuoteRevStart" date
        not null,
    "QuoteRevEnd" date,
    "QuoteRevNumber" tinyint
        not null,
    "QuoteRevCurrent" bit
        not null
)

create table QuoteDetails (
    "QuoteDetailsID" uniqueidentifier default newid()
        not null primary key,
    "QuoteNo" uniqueidentifier
        not null foreign key references Quotes(QuoteID),
    "ItemNo" smallint
        not null,
    "ProductQty" smallint
        not null,
)

Это основано на структуре базы данных типа 6 с медленно меняющимися измерениями. Все это делается с помощью стандартных элементов управления Lightswitch.

person embedded.kyle    schedule 09.04.2013
comment
Большое спасибо @embedded.kyle, это мне очень помогло! Мой дизайн теперь похож на ваш, и я не мог быть счастливее :) - person Oskar Eriksson; 12.04.2013