Я пытаюсь создать систему, в которой все новые таблицы будут создаваться динамически (или объекты внутри предопределенных баз данных).
Вот общий вид дизайна, у меня была бы предопределенная таблица для
Например
В таблице «объекты» у меня есть строки, чтобы выглядеть так:
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
...
...
...
Этот дизайн позволит мне динамически создавать новый объект, создавать поля внутри этого объекта и, наконец, собирать данные для каждого поля. Все будет сделано без необходимости создавать / изменять таблицы вообще.
проблема
Проблема, с которой я сталкиваюсь, заключается в том, как мне создать уникальный идентификатор для каждого объекта? (Мне нужно иметь возможность идентифицировать одну строку внутри динамического объекта)
Например, если я хочу создать 100 000 учетных записей «уникальных учетных записей» внутри объекта учетных записей. Как я могу автоматически назначить уникальный идентификатор для каждой строки?
Я должен быть в состоянии создать новое поле и назвать его «идентификатором учетной записи» в объекте поля и связать его с object_id 1. Затем автоматически заполните значение автоинкремента внутри этого поля. Поскольку поле «идентификатор учетной записи» является основным идентификатором, оно должно быть уникальным для каждого объекта.
Я считаю, что я полностью понимаю дизайн, но не уверен, как автоматически генерировать уникальный идентификатор. Позже уникальный идентификатор будет использоваться для захвата данных перед их сохранением в объекте данных. Объект данных тогда будет примерно таким
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 в качестве СУБД и PHP в качестве языка сценариев для достижения этой цели.
Любая помощь будет оценена
Задача ещё не решена.
Других решений пока нет …