【发布时间】:2023-03-24 09:33:01
【问题描述】:
对于一个学校项目,我正在设计一个系统来记录针对残疾人的不同类型的建筑违规行为(抱歉,我的语言很粗鲁,我不会说英语)。
有许多不同的违规类别和子类别,每个违规子类别都有不同的字段集。添加违规的表单将是动态的,根据子类别,用户将面临不同的字段集。字段可以是二进制或整数。有些违规可能有多个字段。
我的问题是我应该如何设计这样一个系统的数据库?
到目前为止我的想法类似于this
你觉得这个设计怎么样?这是我第一次实现这样的系统,所以我不知道它会如何工作。
【问题讨论】:
-
我将其标记为离题。这里的其他网站更适合算法/代码预览。
-
也许更适合dba.stackexchange。顺便说一句,看看WordPress database model 以获得灵感 - 它有一些好的(和一些坏的)想法。
-
当您写“不同的字段集”时,您是什么意思?不同的字段值还是真正不同的字段?我解释。在第一种情况下,您有一个包含两个字段的表:整数 I 和二进制 B。用户可以在该表中输入不同的值,但字段保持不变。在第二种情况下,您有许多字段的表:I1,I2,...,In; B1,B2,...,Bm。并且用户在预定义的设置字段中输入值。哪个案例是你的?
-
真正不同的领域。例如,坡道违规具有坡度场。但是,网格违规将具有网格间隙和网格方向(二进制)字段。用户将能够提供任何值。
-
也许对 EAV(实体属性值)设计进行一些研究。这通常是不受欢迎的,但做一些研究会让你对它的优点和缺点有所了解。