我正在为期刊管理和出版系统设计ERD
请记住,我会将Author,Editor,Reader作为我的应用程序的用户。以及每个期刊的管理员。
因此,每个期刊都有自己的部分www.abc.com/journal/abc以及单独的网站管理部分。如何制作ERD以维护每个管理员设置的每个日记的设置首选项。
我目前正在使用MySQL Workbench。
答案 0 :(得分:3)
嗯,对于初学者,根据您希望用户在表单中填写的内容来制作表格(添加图书?制作books
。添加用户?制作users
)。这些是你的“事物”,并且是最容易开始的事情。但是,只需添加关键字段。然后,加入你的表格。在此过程中,您将发现您需要创建一些中间表来表示您的“事物”在其数据库的整个生命周期中将经历的活动,关系或某些进展。无论你做什么,都不要在桌面上添加多余的字段,直到你以一种你看得舒服的方式将它们链接起来。它会有所帮助,因为你会保持最小的字段,并且表格看起来会更小,这样可以防止你在查看ERD时分心。
我无法发布完整的架构。那对我们两个人来说都是愚蠢的,并且是吨的工作,因为我不得不问你应该问的所有问题。希望这些指针可以帮助您自己构建自己的系统。
由于您只需指出一个功能,我会帮忙。
您真的只需要两个表 - preferences
和journal_preferences
。由于一个期刊可以有多个首选项,并且首选项可以属于多个期刊,因此您需要特殊的中间表journal_preferences
。 journal_preferences
只需要两个字段即可:journal_preferences.journal_id
和journal_preferences.preference_id
。
所以,说我们有这个:
SELECT * FROM journal_preferences;
journal_id preference_id
========== =============
1 2
1 3
1 5
2 1
2 2
当然,这是第一个期刊的preference_id
#2,3和5的引用,以及第二个期刊的第一个和第二个首选项。
SELECT preference_id, preference_name from preferences;
preference_id preference_name
============= ===============
1 auto-post to facebook
2 auto-post to google plus
3 auto-post link to twitter
4 auto-post to rss feed
5 is hidden
等等。这样,您可以为期刊提供最大的选择,并且仍然可以将存储成本降至最低。
某些偏好需要一个值。如果首选项打开或关闭,此表可能有效,但对于值,可以如何修改?
您只需要指定preference_value
:
pref_id pref_name pref_value pref_value_code
======= ========= ========== ===============
1 auto-post to facebook 1 BLN
2 auto-post to google plus 0 BLN
3 auto-post link to twitter 1 BLN
4 auto-post to rss feed 0 BLN
5 is hidden 0 BLN
6 post_as_new 720 HRS
在这种情况下,1和0是True
和False
的布尔码。
还是保存在应用程序逻辑中的首选项?这意味着应用程序将找出为该特定日志ID保存prefernce_id及其值?在表格中
我指出了一个可能的解决方案,知道如何解释这个价值。是的,如果需要,您的应用程序将通过查找主表来“知道”可能的值是什么:
SELECT * FROM preference_values;
preference_value_id preference_value_code preference_value_description
=================== ===================== ============================
1 BLN boolean
2 HRS hours