Sta*_*bie 2 mysql database oracle database-design
假设我有销售各种产品的供应商.因此,在一个基本水平,我将有以下表格:vendor,product,vendor_product.
如果vendor-1添加Widget 1到product表中,我只希望vendor-1看到该信息(因为该信息由vendor-1"拥有").供应商-2也是如此.比如vendor-2添加Widget 2,只有vendor-2应该看到该信息.
如果vendor-1尝试添加Widget 2(已由vendor-2输入),则Widget 2不应在product表中创建重复条目.这意味着,不知何故,我需要知道供应商-2现在也"拥有" Widget 2.
拥有一条信息的多个"所有者"的问题是如何处理所有者编辑/删除数据.也许供应商-1不再希望Widget 2他/她可用,但这不一定适用于供应商-2.
最后,我希望能够将(?)某些记录标记为"是,我已经审查了这些数据并且它是正确的",以便随后可供所有供应商使用.假设我标记Widget 1为良好的数据,现在所有供应商都应该看到该产品.
似乎解决方案是行级安全性.问题是我不太熟悉它的概念或如何在MySQL中实现它.任何帮助都非常感谢.谢谢.
注意:此问题在这里有所讨论:数据库设计:使用复合键作为FK,标记数据以进行共享?.当我问这个问题时,我不确定如何很好地表达这个问题.希望这次我能更好地解释我的问题.
Mysql本身不支持表上的行级安全性.但是,您可以使用视图来实现它.因此,只需在表上创建一个视图,该视图仅公开您希望给定客户端看到的行.然后,仅提供该客户端对这些视图的访问权限,而不是基础表.
见http://www.sqlmaestro.com/resources/all/row_level_security_mysql/