2016-08-18 67 views
0

嗨,我有一个我正在开发的小型内部项目。目前它只服务于我的公司,但我想扩展它,以便它可以服务于多家公司。我现在的表格有USERSPROJECTS。我想开始存储公司特定信息并将其与USERS表关联起来。对于每个用户,我都会有一个新的专栏,即他们所属的公司。关于MySQL中表结构的建议

现在我还需要将该公司模板存储在数据库中。这些模板存储为字符串是这样的:

“分水岭”,“事件”,“自由”等

起初,我想每个单词应该作为一个独立的行,但作为我写这个我想或许我应该将所有模板存储在一个由逗号分隔的条目中(如上所述)。底线,我是新来的数据库设计,我不知道如何最好地设置这一点。现在,我的表格结构如下所示:

PROJECTS 
Project Number | Title | exacttarget_id | Author | Body | Date 

USERS 
Name | Email | Date Created | Password 

在此先感谢您提供的任何见解。

+0

什么是公司模板和与公司的关系?你知道关系数据库中的'1到n'和'm到n'的关系吗?如果不是,最好从以前的理论研究开始,因为即使有人会给你一个解决方案,你也无法理解它。 –

+0

Elzo,如果你的意思是绑定公分母(如公司ID),那么是的。如果你的意思是别的,我不确定... – garek007

+0

没有。你应该有一些阅读,这里是一个开始http://code.tutsplus.com/articles/sql-for-beginners-part-3-database-relationships-net-8561 –

回答

0

我会做的是创建2个表:

我想创建一个表为不同的公司,让我们把它叫做COMPANY

Company_id | Title | Logo | (Whatever other data you want) 

我还要创建一个表,上面列出的设置,让我们把它叫做COMPANY_SETTINGS

Company_id | Key | Value 

这让你在未来灵活地添加额外的设置,而不会影响你的现有的代码。一个简单的查询会获取所有设置,而不管当前版本使用多少。

SELECT Key, Value FROM COMPANY_SETTINGS WHERE Company_id = :companyId 

然后可以将te结果放入关联数组中,以便在整个项目中轻松使用。

+0

这听起来很完美,正是我需要知道的,只是一个组织我的表的好方法。谢谢! – garek007