我想创建一个网页,用户可以在其中整理收集的内容。当每个人都收集其他东西时我想让用户创建自己的datamodell(有严格的限制)。如果两个人收集相同的“东西”,他们可以共享数据结构。 我的想法是为每个集合提供一个ID,属于该集合的所有表都将ID作为前缀。
Table: Collections
ID | Collection
1 | Poststamps
2 | Barbie Dolls
Table: 1_Base
ID | StampValue | StampPic
....
Table: 2_Base
ID | EAN | Pic
....
因此,我会创建许多表,因为每个用户理论上可以创建自己的集合。我也可以只使用一个非常大的表和一个映射表。例如:
Table: Colleactions
ID | Collection
1 | Poststamps
2 | Barbie Dolls
Table: Mapping
fkCollection | FieldName | Mapping
1 | DoubleField1 | StampValue
1 | BlobField1 | StampPic
2 | StringField1 | EAN
2 | BlobField1 | StampPic
Table: CollectionData
fkCollection | DoubleField1 | ... | DoubleField10 | StringField1 | ... | Stringfield10 | BlobField1 | ...
1 | 30 | | | | | | ... |
2 | | | | 21312412414 | | | ... |
还有其他想法吗?
感谢您的帮助!
答案 0 :(得分:2)
从我所看到的,你尝试这种方式的第二种方式将是最简单的方法...你的查询将更容易处理十倍,你不需要可编程地创建表格。所以我的建议是稍微修改你的第二个想法......只是为了澄清一些东西,一个blob会降低查询速度,所以我改变了块来保持源链接到图像。
表:Collections
ID| Collection
1 | Poststamps
2 | Barbie Dolls
表:CollectionData
fkCollection | DataType | VALUE | FieldName |
1 | Double | 30 | StampID |
1 | String | London | StampName |
1 | ImgSrc | ../loc | StampPic |
2 | String | Ken | BarbieName |
2 | ImgSrc | ../loc | BarbiePic |