我正在开发一个项目。它主要是为了学习的目的,我发现实际上尝试一个复杂的项目是掌握基础知识后学习一门语言的最好方法。数据库设计不是一个强项,我开始阅读它,但它的早期和即时通讯仍在学习。涉及动态字段的数据库结构
这里是我的阿尔法模式,我真的在这里我只是想记下所有我能想到的,看是否任何问题,跳出点。 http://diagrams.seaquail.net/Diagram.aspx?ID=10094#
我的一些顾虑我想反馈:
为核心通知属性,如区域例子,可以说为了简单的领域是厨房,卧室,花园,卫生间和起居室。对于另一个可能成为主页,联系页面,about_us,启动画面的客户。它可以是2个区域,也可以是100个,不需要限制它。
我为默认创建了单独的表格,每个表格都链接到一个错误。后来我遇到了自定义字段的问题,如果有人想要标记该错误适用于哪些主题,我们可能不会有这种情况,那么可能还有其他100个东西,所以我想坚持一组核心属性和自定义字段给人灵活性。
但是当我到了自定义字段我知道我有一个问题,我不能要创建一个表,每一个自定义字段,所以我代替2个表。自定义字段和custom_field_values。这个想法是包括默认每场将被存储在该表中,并且每个将被链接到值表,只会有这样的事情
custom_fields table
id project_id name
01 1 area(default)
12 2 rooms(custom)
13 4 website(custom)
custom_field_values table
id area project_id sort_number
667 area1 1 1
668 area2 1 2
669 area3 1 3
670 area4 1 4
671 bedroom 2 1
672 bathroom 2 2
673 garden 2 3
674 livingroom 2 4
675 homepage 4 1
676 about_us 4 2
677 contact 4 3
678 splash page 4 4
这看起来像一个有效的方式来处理动态字段这样或还有其他的选择吗?
默认值将被硬编码,所以你可以使用它们或换成你自己或者我可以创造一个又一个表,允许用户编辑这将被链接到他们的项目的默认名称。任何反馈都是值得欢迎的,如果计划中存在的问题非常明显,请随时批评。
唉EAV。如果我是你,我会看看NoSql的选择。 –