我正在使用 Yii 框架为我的实习设计一个数据库和匹配网站,主要使用 PHP。我们的目标是让管理用户完全灵活地选择他们想要显示的信息,因此我们试图保持应用程序动态。因此,这个想法是针对数据库中的选项/数据,而不是代码内部。我目前有一个工作设置,但我不确定这是否是正确的方法。长篇大论,对不起。目前我们有:
关系
+ 用户HAS MANY
user_phone
+ user_phoneHAS MANY
用户
+ user_phone HAS
user_phone_type
表
用户 <-- user_phone_assignment --> user_phone --> user_phone_type
用户电话类型
id INT PRIMARY KEY,
name VARCHAR(50) NOT NULL,
limit INT NOT NULL
基本的用户资料信息存储在 user 中,为了减少家庭和兄弟姐妹实例中的重复数据,user_phone 有一个潜在多对多的分配表。user_phone_type 的想法是我们存储一个名称,例如“Home”、“Work”、“Fax”、“Other”等。
user_phone_type.limit < 0
+ 字段已禁用,不显示 actionCreatePhone
user_phone_type.limit = 0
+ 字段已启用,允许无限条目,始终显示
user_phone_type.limit > 0
+ 字段已启用,在 count(user_phone) < user_phone_type.limit 时显示
我觉得这个系统可能是可行的,但我不确定这是否是最好的解决方法。有没有人有任何其他选择来保持应用程序的灵活性和面向数据库的同时保持更简单的关系?也许是某种配置表设置,我们可以将配置值存储在模型或控制器内的局部变量中。