Member 13664912 Ответов: 1

SQL-таблиц для Excel как таблицы приложения


Я разрабатываю базу данных для веб-приложения, которое показывает таблицу, которая изначально имеет предопределенные имена столбцов, которые могут быть любого типа (текстовая область, выпадающий список, дата, текстовое поле). Пользователь также имеет возможность добавлять новые столбцы, добавлять новые параметры для выпадающих типов, изменять порядок столбцов, скрывать и показывать столбцы, а также сортировать.(Поведение, подобное Excel). Цель здесь состоит в том, чтобы предоставить пользователю таблицу, в которую он может вводить строки данных, которые могут быть использованы для составления отчетов и т. д. Для нескольких пользователей каждый пользователь будет иметь свое собственное "представление" (некоторые пользователи могут выбрать скрытие некоторых столбцов) этой таблицы.

Что я уже пробовал:

Учитывая вышеизложенные требования первоначальный дизайн базы данных который я придумал таков:
[This table would house all the data in a row of the table and all its predetermined fields]
Table Name : AppRow
Columns : Id
          Name
          Phone
          Address
          Birthdate

[The tables below represent the new fields/column the user would add]
TableName : CustomColumnFields
Columns : Id
          Name

TableName : CustomColumnvalues
Columns : Id
          AppRowId
          CustomColumnFieldsId
          Value

[The purpose of this table is to have the value column[string] have the column names separated by comma that the user opt to choose to view e.g. user1 has name,phone or user2 has name,address,birth-date. It would basically dictate what columns should be presented to each user]
TableName : UserView
Columns : Id
          UserId
          Value

** Pleae обратите внимание, что мы можем предположить, что база данных является эксклюзивной только для этого набора пользователей. Они не делятся БД ни с какими другими группами.

**** В этом случае также параметры для столбцов выпадающего типа будут размещены в файле json.

Имея вышеприведенные требования и структуру, может ли кто-нибудь помочь мне оценить, есть ли подводные камни, нарушение принципа проектирования или какой-либо красный флаг?

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

Пожалуйста, поделитесь своими мыслями. Спасибо.

David_Wimbley

Так в чем же заключается ваш вопрос? Я не вижу вопроса, просто вы излагаете свой план реализации схемы.

Member 13664912

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

David_Wimbley

Моя ошибка, что я не заметил прокрутки в кодовом поле вашего текста.

1 Ответов

Рейтинг:
0

Maciej Los

Что ж... Кажется вам нужно творить Управление доступом на основе ролей- Википедия[^Я бы настоятельно рекомендовал внедрить его в свой собственный проект.

Примечание: Вы должны отделить уровень презентации от привилегий пользователя. Если вы хотите предоставить функциональность, позволяющую пользователю изменять представление, вы должны сделать это на уровне приложения, "сохранив" пользовательские настройки/предпочтения. Вы можете хранить их в файле (конфигурация приложения) или в базе данных. Выбор за вами!

Для получения более подробной информации, пожалуйста, смотрите:
Хранение и извлечение параметров и другие сведения приложение - приложения UWP разработчик | Майкрософт документы[^]
Сохраните и восстановите размер и местоположение вашей формы[^]
Где я должен хранить свои данные?[^]