Каскадный выпадающий с пустыми значениями - PullRequest
0 голосов
/ 13 июня 2019

Я использую Entity Framework в проекте ASP.NET MVC + Angular, и имеется каскадный раскрывающийся список со следующими данными, и при создании заявки эти значения раскрываются в таблице заявок.

Родительский субъект:

|  Id  |  Name          | 
-------------------------
|  0   |  N/A          |
|  1   |  Software      |
|  2   |  Hardwire      |
|  3   |  System        |
|  4   |  Electricity   |
-------------------------

Дочерняя сущность:

|  Id  |  MasterId  |  Name          | 
--------------------------------------
|  0   |     0      |  N/A           |
|  1   |     1      |  Java          |
|  2   |     1      |  C#            |
|  3   |     2      |  Monitor       |
|  4   |     2      |  Keyboard      |
|  5   |     3      |  EMail         |
|  6   |     3      |  Antivirus     |
|  7   |     3      |  Operating Sys.|
--------------------------------------

Билетная касса:

|  Id  |  ParentId  |  ChildId  |  Subject  | 
---------------------------------------------
|  1   |     1      |     1     |  Xxxxxxx  |
|  2   |     1      |     2     |  Xxxxxxx  |
|  3   |     2      |     3     |  Xxxxxxx  |
|  4   |     2      |     4     |  Xxxxxxx  |
|  5   |     3      |     5     |  Xxxxxxx  |
|  6   |     3      |     6     |  Xxxxxxx  |
|  7   |     3      |     7     |  Xxxxxxx  |
|  8   |     4      |     0     |  Xxxxxxx  |
|  9   |     4      |     0     |  Xxxxxxx  |
|  10  |     4      |     0     |  Xxxxxxx  |
---------------------------------------------

Некоторые родительские записи не имеют дочерних записей, например, Электричество и по этой причине я планирую использовать следующий подход:

Сценарий I: Пользователь выбирает родителя, а затем выбирает соответствующую дочернюю запись в раскрывающихся списках каскада. Если дочерняя запись родительской записи отсутствует, дочерний раскрывающийся список будет скрыт, а для ChildId будет задано значение 0 (ноль) для таблицы заявок. Потому что и ParentId и ChildId являются обязательными полями.

Сценарий II: Однако я не уверен, является ли это хорошим подходом для этого сценария, и подумайте о том, чтобы создать еще одну дочернюю запись для основной записи (записей), которая имеет не дочерняя запись с тем же именем, как показано ниже:

Дочерняя сущность:

|  Id  |  ParentId  |  Name          | 
--------------------------------------
|  ... |     ...    |  ...           |
|  8   |     4      |  Electricity   |
|  ... |     ...    |  ...           |
--------------------------------------

При этом не будет необходимости использовать записи parent6-child с Id 0, и когда пользователь выберет Electricity в качестве родительского, в раскрывающемся списке дочерних элементов будет указан Electricity как дочерняя запись (которая также может быть скрыта) и ParentId- ChildId будет 4-8 в таблице билетов. Какой сценарий лучше? Или есть лучший сценарий для этой ситуации? С наилучшими пожеланиями ...

...