问题描述
|
我打算为网站设计数据库。我们网站上的屏幕不同。每个屏幕应具有唯一的ID,并且每个屏幕的类型都不同。与屏幕有关的信息应存储在其类型表中。我怎样才能做到这一点?
我的计划是使用带有以下字段的屏幕表格
屏风
screen_id
screen_type
screen_type_table_name
主屏幕
home_screen_id
screen_id
语言
内容1
内容2
home_screen_field1
home_screen_field2
aboutus_screen
aboutus_screen_id
screen_id
语言
内容1
内容2
about_us_field1
about_us_field2
上面两个表的关系是1对多(屏幕表到类型表)。一个屏幕可能在类型表中有许多记录(使用不同的语言)。
这里的问题是,我无法在单个查询中查询数据。当我将表名称存储在screens表中时。
有人可以在这里建议最好的数据库设计吗?
[编辑]
我无法将信息存储在同一张表中。
原因:
1)语言限制
2)我需要维护每个内容的修订
3)每个屏幕的类型不同。因此,每种类型的字段都不同。每种类型的字段数也不同。
4)我也不能序列化数据(因为我需要搜索的便利)
要求
使用屏幕ID,我应该能够在单个查询中获取内容。请给我一些建议。
提前致谢
谢谢
维努
解决方法
您的Home_screen和Aboutus_screen表完全相同。您可以这样尝试:
//screens\\\\
screen_id (PK)
language (PK)
type_id (FK)
content1
content2
//screen_types\\\\
screen_type_id (PK)
screen_type_name
如您所见,在screens表上有一个双主键,如果需要的话,可以通过screen_types的外键来跟踪页面的类型。
,您为什么不将所有屏幕都放在一张桌子中?你应该做类似的事情
屏风
ID,
语言,
content1,
content2,
等等
然后只在需要页面时查询表。我不确定为什么要按原样将它们分开,是否有特定原因?