Python “任意用户提交数据库的数据库设计”;“对象”;
我正在为一个需要存储通用“对象”和相关信息的用户开发一个数据库软件。(使用web界面,以抽象SQL) 首先,在这种情况下,我所说的“对象”是指可以由任意数量的输入字段定义的“事物”,例如: “Customer”对象可以由Python “任意用户提交数据库的数据库设计”;“对象”;,python,sql,django,postgresql,Python,Sql,Django,Postgresql,我正在为一个需要存储通用“对象”和相关信息的用户开发一个数据库软件。(使用web界面,以抽象SQL) 首先,在这种情况下,我所说的“对象”是指可以由任意数量的输入字段定义的“事物”,例如: “Customer”对象可以由 名字 电话号码 电子邮件 公司 等等 这些对象将由用户设计。因此,我需要一种在SQL中定义任意对象的方法 到目前为止,我提出的解决方案大致如下: CREATE TABLE object_name ( p_key SERIAL PRIMARY
- 名字
- 电话号码
- 电子邮件
- 公司
- 等等
CREATE TABLE object_name
(
p_key SERIAL PRIMARY KEY,
name varchar UNIQUE NOT NULL
);
CREATE TABLE field_type
(
p_key SERIAL PRIMARY KEY,
type varchar UNIQUE NOT NULL
);
CREATE TABLE field_name
(
p_key SERIAL PRIMARY KEY,
name varchar UNIQUE NOT NULL
);
CREATE TABLE object
(
object_name_id integer REFERENCES object_name (p_key),
field_type_id integer REFERENCES field_type (p_key),
field_name_id integer REFERENCES field_name (p_key),
PRIMARY KEY (object_name_id, field_type_id, field_name_id)
);
基本思想是使用连接表定义用于定义对象的字段的数量/类型。(这只是一个非常基本的例子)
我在使用此解决方案时遇到了一些问题
谢谢。您想要多复杂?如果您想让“用户”创建任意复杂度的关系模型,那么他们应该知道关系模型是如何工作的。一旦他们知道了这一点,他们就可以直接编写SQL DDL了。我还不能完全确定其复杂性,但是我的假设是,定义“对象”的“用户”将熟悉一些关系概念,而不是SQL。仅仅创建对象实例的“用户”类型对于后台进程来说更加幼稚,因此他们都需要web界面。不过,我会考虑更多的复杂性。听起来你真的在找NosqlThank@John,我现在正在调查。