数据库设计帮助 - asp.net-mvc

问题描述:

好吧所以我需要帮助设计一个模仿excel电子表格的数据库。我希望它切换到Web应用程序,因为一旦数据库变得超过25/50用户......很难维护excel表。附件是excel表的图像。



请阅读每个部分的彩色字幕!它很重要!



Matrix_Picture [ ^ ]



这是我当前的数据库图。 ..



Database_Diagram [ ^ ]





我需要什么做&信息:

1)我希望能够在多个解决方案之间共享1个应用程序用户表...这不是必需的......但我将来需要它。

2)矩阵用于跟踪学生获得认证的进度。

3)用户在Web应用程序上注册。管理员分配该用户被分配到主要和次要的集中

4)根据用户被分配的集中度,他获得某些练习的链接。如果你看一下图片,用户1就是浓度为5(tiki tiki专家,初级浓度)& 6(Tiki辅导员,二级集中)。用户根据这些浓度获得模块,培训和阅读的链接...用户1,获得分配模块5.00和5.01。

5)用户获得表现评分(该评分由教师手动输入)。

6)我还需要一种方法来保证每个使用此矩阵的用户完成%。完成百分比将基于他们在模块,训练和阅读上获得的分数算法来计算。

7)重要提示:模块,培训和阅读需要有权重......这意味着这3个类别中每个类别的权重将为33%,但我想能够在将来调整这些重量(可能将模块更改为50%,培训和读数各自为25%)。

7b)模块,训练和阅读中的权重非常重要,因为权重用于计算每个用户的完成百分比。



我在Visual Studios中使用实体框架和MVC设计模式进行设计。



请告知我能做些什么。

-我对如何将许多模块,训练和阅读分配到多个浓度感到非常困惑。

-我对如何跟踪每个用户的每个模块的分数感到困惑。

-我对如何为用户分配主要和次要集中感到困惑......并确保他们无法访问未分配给他们的模块,培训和阅读。



我尝试了什么:



请看数据库图,我有大多数表格的脚手架控制器和视图。

Alright so I need help designing a database that mimics an excel spreadsheet. I want it switched to a web application because once a database gets bigger than 25/50 users... its hard to maintain an excel sheet. Attached is an image of the excel sheet.

Please read the colored captions for each section! Its important!

Matrix_Picture[^]

This is what my current database diagram looks like...

Database_Diagram[^]


What I need to do & Information:
1)I want to be able to share 1 application users table between multiple solutions... This is not a necessity immediately... but i will need it in the future.
2) The matrix is used to keep track of a students progress in achieving certification.
3) A User registers on a web application. An admin assigns That user is assigned to a PRIMARY AND SECONDARY CONCENTRATION
4) Based on the concentration the user is assigned he gets links to certain exercises. If you look at the picture, User 1 is concentration 5 (tiki tiki experts, primary concentration) & 6 (Tiki Facilitators, secondary concentration). The user gets links to modules, training, and reading based on these concentration... User 1, gets assigned module 5.00, and 5.01.
5) The user is given a score on performance (this score is manually entered by an instructor).
6) I also need a way to keep a %complete for each user who uses this matrix. The %complete would be calculated based on an algorithm of the scores they recieved on modules, training, and reading.
7) IMPORTANT: The modules, training, and reading, need to have 'weights'... meaning the weight of each of these 3 categories would be 33%, but I want to be able to adjust these weights in the future (maybe change the modules to 50%, and training and reading to 25% each).
7b) Having weights in modules, training, and reading is important because weights are used to calculate the %complete for each user.

I am designing this in Visual Studios, using entity framework, and the MVC design pattern.

Please advise on what I can do.
-I am super confused about how I can assign many modules, training, and reading, to many concentrations.
-I am confused on how to keep track of scores for each module for each user.
-I am confused on how I can assign a primary and secondary concentration to a user... and making sure they don't have access to modules, training, and reading that they are not assigned to.

What I have tried:

Please look at database diagram, I have scaffolded controllers and views for most of those tables.

您可以逐步设计数据库。你描述了你的问题。现在阅读你写的内容并创建表格:

[用户]

[认证]

[ConcentrationTypes] - >这包含值[模块] [培训] [阅读]

[浓度] - >这包含认证,重量和类型的链接(外键)

[UserConcentration] - >这包含三个重要字段,id,user_id和concentration_id - >这就是你如何将多个用户分配到多个浓度 - 谷歌数据库中的多对多关系 - >除此之外,您可以在此处为每个浓度分数。或者重量,如果你想要相同的浓度根据用户或证书不同的重量



一般情况下,你阅读你的域名的描述并分配给每个名词单独表。或者,如果您可以在具有相同字段和/或功能的情况下进行概括(如在模块,培训,阅读中),则可以为所有这些字段创建一个表,并使用另一个表来描述行项目的类型。



如果有帮助,请接受解决方案。谢谢,祝你好运。
You design the database step by step. You describe your problem. Now read what you wrote and create tables:
[Users]
[Certifications]
[ConcentrationTypes] -> this contains values [Modules][Training][Reading]
[Concentration] -> this contains link (foreign key) to Certification, weight and type
[UserConcentration] -> this contains three important fields, id, user_id and concentration_id -> this is how you assign multiple users to multiple concentrations - google "many-to-many relationship in the database" -> other then that, you can put scores for each concentration here. Or weight if you want same concentration to be of different weight depending on the user or certificate

In general, you read the description of your domain and assign to each noun separate table. Or if you can generalise (as in modules, training, reading) where you have same fields and/or functionality you create one table for all of them and another table that describes the type of the row item.

If this helps, please accept the solution. Thank you and good luck.