我正在尝试创建一个系统,其中将动态创建所有新表(或预定义数据库中的对象。)
这是设计的过度视图,我将有一个预定义的表
例如 在“objects”表中,我有一行看起来像这样:
object_id object_name
1 accounts
2 users
...
...
...
在字段表中,我将有以下行:
field_id field_label object_id
1 Account Name 1
2 Specialty 1
3 DBA 1
4 First Name 2
5 Last Name 2
...
...
...
最后,数据将在数据表中捕获,它看起来像这样:
data_id value field_id object_id
1 Mike 4 2
2 Signs/Graphics 2 1
...
...
...
这个设计允许我动态创建一个新对象,在这个对象中创建字段,最后捕获每个字段的数据。一切都将完成而无需创建/更改表格。
问题
我遇到的问题是,如何为每个对象生成唯一标识? (我需要能够在动态对象中识别出一行)
例如,如果我想在帐户对象内创建100k帐户“唯一帐户”。如何为每行自动分配唯一ID?
我应该能够在字段对象中创建一个新字段并将其称为“帐户ID”,并将其与object_id 1 相关联。然后自动填充该字段内的自动增量值。由于字段“帐户ID”是主要标识符,因此它应该对每个对象都是唯一的。
我相信我完全理解了设计,但不确定如何自动生成唯一标识符。稍后将使用唯一标识符在将数据存储在数据对象中之前捕获数据。那么数据对象将是这样的
data_id value field_id object_id object_unique_id
1 Mike 4 2 1
2 Signs/Graphics 2 1 1
3 Jack 4 2 2
3 Jay 4 2 3
...
...
...
数据对象的第1行将指向field_id,object_id和object_unique_id,它们代表我在“名字”字段引用的确切帐户。
我使用MySQL作为DBMS和PHP作为脚本语言来实现这一目标。
非常感谢任何帮助