![]() |
1
1
使用数据库外观模式(视图、存储过程)是一个很好的实践。它们将所有数据库内部(结构)隐藏在其他世界中。我认为,这是另一个安全问题。每个公司都希望对表级别(而不是行级别)上的某些数据进行受限访问。第二点是:性能。最好有多张桌子而不是一张大桌子。 因此,我认为,最好让每个公司的表格保持原样,并为报告创建一个视图(我认为):
或 补充: alt text http://i34.tinypic.com/2yydonc.jpg 使用触发器或存储过程为某些公司和范围(“客户机”或“文档”)生成下一个ID:
更新:
插入
|
![]() |
2
1
fwiw,意见
高温高压 |
![]() |
3
1
主键的目的是唯一地标识表中的行,而不是充当某种可能具有某种意义的业务键。
如果您需要为每个客户定制编号序列,可以为此添加一列(
|
![]() |
4
0
您需要适当地设置pk-fk关系来处理表数据。例如,如果一个公司有多个文档(显然一个公司可以),那么在文档表中,您可以将firmID设置为fk,这是公司表的pk。或者最好的学习关系是映射。做一件事,独立地创建所需的表,而不在表之间建立任何关系。假设您有4个,然后创建4个表,即用户、文档、公司和客户。现在再创建一个表来处理任意两个表的关系。例如。 博士和公司。 创建一个新表docfirmmaptable,其中三列docfirmmapid作为其pk、docid和firmid。只需在插入两个表时注意这一点,就需要在各自的映射表中再插入一个表。另外,在映射表中,您可以根据需要保留两个或多个表的映射。 |
![]() |
Michael Samuel · MYSQL在以下情况下自动创建索引 6 年前 |
![]() |
Patricia Rozario · 数据库设计确保一对一关系 6 年前 |
![]() |
dryhay · MySQL“多对多”关系错误 6 年前 |
![]() |
L. Fox · 我在这里用的是什么样的Laravel雄辩的关系 6 年前 |
![]() |
Geoff Harper · 我应该如何构建关系松散的SQL db 7 年前 |
![]() |
waroxx · SQL—当多个表具有相同的列时,最好怎么做 7 年前 |
![]() |
Lumpi01 · SQL 2不同的注释类型-最佳解决方案? 7 年前 |
![]() |
Hayreddin Tüzel · 预约系统数据库建模[关闭] 7 年前 |