我正在使用 PHP 5+ 和 MySQL 5+
我将很快开始为客户构建一个 Web 应用程序,但在开始之前,我想问一些关于基础设施的问题......
我正在为希望跟踪客户数据的 HR(人力资源)公司构建此 Web 应用程序。它将有人力资源(人民)、客户、联系人等表格,这些表格将通过关系相互链接。例如,应用程序的管理员会说 John 将在 X 时间段之间在客户 Doe 处。
没有什么特别的,但这里是我需要你帮助我思考的部分:
我正在为其执行此操作的客户在不同地区(城市)设有分支机构,每个办公室都有一些管理员,他们将在我的应用程序中工作,只使用“他们的”客户数据。并且会有人使用多个领域的数据。
因此,在成功登录后,他们应该只看到来自他们所连接的 city_id 的数据。
我可以通过将“city_id”列添加到我的所有表中,然后在登录表单中开始一个,然后像
我猜$_SESSION['city_id']
的那样编写我的 MySQL 查询
来做到这一点。"SELECT * FROM company WHERE city_id={$_SESSION['city_id']}
但我希望它简单灵活,超级管理员应该能够添加新城市,并将其链接到新客户。
我应该如何构建我的数据库结构?我应该如何让超级管理员能够创建新城市并将其动态链接到其他表?
我正在考虑使用 X + 2 结构,例如 X 可以是表 Customer,另外两个是 City_list 和 City_handler。City_list 将包含所有可用的城市,City_handler 将存储与哪个城市相关联的谁和什么。这是一个坏主意吗?
如果我有一个看起来像这样的数据库结构,那么在实践中应该如何实现:
客户
customer_id
customer_name
City_list
city_id
city_name
City_handler
customer_id
city_id
如果您能帮我将这些与 FK 联系起来(我猜?)并告诉我一些如何工作以及可能出现的问题,我将非常感激,因为这将是一个围绕整个解决方案的核心功能,帮助我开始!