未知的动态数据,我的工作系统,用于需要在哪里上:多租户,每个租户
- PHP + PostgreSQL的
- 多租户系统,采用单一数据库对所有租户(tenantId)。
每个租户的数据是未知的,所以他们应该可以灵活地添加任何他们想要的数据:
- 例如用于帐户表,
承租人1> account_no上| date_created | DUE_DATE
租户2> account_holder | start_date | end_date | customer_name | ...
唯一的解决办法,我可以看到这种情况下,使用键 - 值对的数据库结构: - 例如
accounts table
id | tenant_id | key | value
1 1 account_no 12345
accounts_data table
account_id | key | value
1 date_created 01-01-2014
1 due_date 30-02-2014
抽签背上我看到从长远来看,这种做法:
- Monster queries
- Inefficient with large data
- Lots of coding to handle data validation, since no data types are there and everything is saved as string
- Filtering can be lots of work
有了这样说,我会很感激的建议,以及是否有其他的方法,我可以用它来实现这一目标。
感谢您的迅速回复。我知道我正在走向编码,查询和工作的野兽。如果我可以修复所有租户的列,事情会更容易,但在这里我的情况是,租户应该可以灵活地上传他们想要的任何数据,然后再处理这些数据。有关我如何将不同的数据集/租户纳入数据库的想法? – aiiwa
顺便说一句,猜你的链接“企业设计”没有把我带到预定的页面。 – aiiwa
@nsk基于他们需要的动态'CREATE'和'ALTER'表,使用'hstore'或'json'来存储他们的行,或者使用一个无模式的数据库。 –